Autor | Zpráva | ||
---|---|---|---|
Prefin Profil |
#1 · Zasláno: 12. 7. 2016, 13:14:41
Ahoj všichni.
Prosím o radu s nefunkčním dotazem po přechodu na PHP 7 (localhost). SELECT DISTINCT jmeno FROM data ORDER BY datum ASC Expression #1 of ORDER BY clause is not in SELECT list, references column 'hovory.data.datum' which is not in SELECT list; this is incompatible with DISTINCT Zkoušel jsem všechno možné ale bezvýsledně. Díky za radu. |
||
xROAL Profil |
#2 · Zasláno: 12. 7. 2016, 13:29:05
Nemôžeš výsledky zoradiť podľa poľa
datum , keď ich zoskupuješ podľa pola jmeno .
Pri jednej hodnote jmeno môže byť viac dátumov a MySQL nevie, ktorý použiť pre zoradenie.
Skús napr. takto: SELECT jmeno FROM data GROUP BY jmeno ORDER BY MAX(datum) ASC |
||
Martin2 Profil * |
#3 · Zasláno: 12. 7. 2016, 14:31:19
Prefin:
„Po přechodu na poslední LAMP (PHP 7, Mysql 5.7.12-0ubuntu1.1) začal chybovat“ Ten problém nesouvisí s PHP7, ale s tím MySQL5.7, respektive s jeho konfigurací. Konkrétně je to SQL mód ONLY_FULL_GROUP_BY , který neumožňuje použití ORDER BY na neagregovaných sloupcích. Dává to jistý smysl, protože DISTINCT zahazuje duplicitní řádky, ale v nespecifikovaném pořadí – seřazení podle nezařazeného sloupce by tak nemělo deterministický výsledek. Použití GROUP BY , jak naznačuje xROAL je jedna (pomalejší) alternativa, pokud nezáleží, podle kterého řádku skupiny se výsledek seřadí, šla by v ORDER BY použít funkce ANY_VALUE(datum)
|
||
Časová prodleva: 9 let
|
0