Für %code%
Um verschiedene Felder auszuwählen, können Sie die Methode %code% verwenden:
%Vor%Ich habe eine Frage, die mich verrückt macht und ich muss zugeben, dass ich in CakePHP nicht so erfahren bin. Wie in dieser Frage erwähnt, Verwenden von DISTINCT in einer CakePHP-Suchfunktion , mit DISTINCT auf folgende Weise:
%Vor% gibt keine DISTINCT-Werte zurück, sondern gibt alle Zeilen zurück. Tatsächlich ist die DISTINCT hier völlig sinnlos, weil CakePHP aus irgendeinem Grund in der SQL-Abfrage TableName
.% Co_de% hinzufügt (warum ?? kann ich die ID-Referenz ?? entfernen) und jeden DISTINCT-Primärschlüssel (= alle Zeilen = nicht hilfreich).
Daher möchte ich immer noch die DISTINCT-Werte einer bestimmten Spalte field_name zurückgeben. Kann ich das nicht nur mit der Funktion find ('all') oder find ('list') machen? Ist es wirklich die richtige Art, es mit dieser Set :: extract () - Funktion zu tun, die im obigen Link beschrieben wird? Das scheint eine übermäßig indirekte Lösung von CakePHP zu sein, normalerweise macht Cake mir das Leben leichter. :-) Was ist die richtige Art, Find und DISTINCT zusammen zu verwenden? Vielleicht funktioniert DISTINCT nicht für find ()?
Mit Blick auf das CookBook sagen sie: "Ein schnelles Beispiel für eine DISTINCT-Abfrage. Sie können andere Operatoren wie MIN (), MAX () usw. auf ähnliche Weise verwenden:"
%Vor%Quelle: Ссылка
Dies zeigt an, dass DISTINCT möglich sein soll, aber was ist hier? Entspricht (User.name) dem field_name, für den ich DISTINCT möchte oder ist my_column_name my field_name?
Hat sich irgendetwas davon bei der Migration von CakePHP 1.x auf CakePHP 2.x geändert? Dh sind die Antworten auf CakePHP 1.x auf Stackoverflow noch relevant?
Vielen Dank im Voraus!
Ja, das zweite Snippet ist der richtige Weg, um eine SELECT DISTINCT
in CakePHP 2.x zu machen. User.name
entspricht dem Feldnamen, in diesem Fall dem Feld name
in der Tabelle users
. my_column_name
ist ein (optionaler) Alias für den Feldnamen in der Ergebnismenge, d. h. anstelle von name
wird das Feld in der Ergebnismenge my_column_name
genannt.
Der richtige Weg, distinct in find with condition zu verwenden, ist:
%Vor%wobei $ val einen Wert enthält, den Sie in der Abfrage übergeben möchten.
Schönen Tag noch
Der richtige Weg, distinct in find with condition zu verwenden, ist:
%Vor%wobei $ val einen Wert enthält, den Sie in der Abfrage übergeben möchten.
Schönen Tag noch
Ja, das zweite Snippet ist der richtige Weg, um eine CakePHP 3.X
in CakePHP 2.x zu machen. distinct()
entspricht dem Feldnamen, in diesem Fall dem Feld %code% in der Tabelle %code% . %code% ist ein (optionaler) Alias für den Feldnamen in der Ergebnismenge, d. h. anstelle von %code% wird das Feld in der Ergebnismenge %code% genannt.
Ich habe eine Frage, die mich verrückt macht und ich muss zugeben, dass ich in CakePHP nicht so erfahren bin. Wie in dieser Frage erwähnt, Verwenden von DISTINCT in einer CakePHP-Suchfunktion , mit DISTINCT auf folgende Weise:
%Vor%gibt keine DISTINCT-Werte zurück, sondern gibt alle Zeilen zurück. Tatsächlich ist die DISTINCT hier völlig sinnlos, weil CakePHP aus irgendeinem Grund in der SQL-Abfrage %code% .% Co_de% hinzufügt (warum ?? kann ich die ID-Referenz ?? entfernen) und jeden DISTINCT-Primärschlüssel (= alle Zeilen = nicht hilfreich).
Daher möchte ich immer noch die DISTINCT-Werte einer bestimmten Spalte field_name zurückgeben. Kann ich das nicht nur mit der Funktion find ('all') oder find ('list') machen? Ist es wirklich die richtige Art, es mit dieser Set :: extract () - Funktion zu tun, die im obigen Link beschrieben wird? Das scheint eine übermäßig indirekte Lösung von CakePHP zu sein, normalerweise macht Cake mir das Leben leichter. :-) Was ist die richtige Art, Find und DISTINCT zusammen zu verwenden? Vielleicht funktioniert DISTINCT nicht für find ()?
Mit Blick auf das CookBook sagen sie: "Ein schnelles Beispiel für eine DISTINCT-Abfrage. Sie können andere Operatoren wie MIN (), MAX () usw. auf ähnliche Weise verwenden:"
%Vor%Quelle: Ссылка
Dies zeigt an, dass DISTINCT möglich sein soll, aber was ist hier? Entspricht (User.name) dem field_name, für den ich DISTINCT möchte oder ist my_column_name my field_name?
Hat sich irgendetwas davon bei der Migration von CakePHP 1.x auf CakePHP 2.x geändert? Dh sind die Antworten auf CakePHP 1.x auf Stackoverflow noch relevant?
Vielen Dank im Voraus!
Für %code%
Um verschiedene Felder auszuwählen, können Sie die Methode %code% verwenden:
%Vor%Tags und Links cakephp cakephp-2.0 extract find distinct