SELECT datum_cesty GROUP BY datum_cesty v PHP
6 příspěvků
Archiv diskusního fóra
Fórum je uzavřené a slouží pouze ke čtení. Některé informace mohou být zastaralé.
-
Zdravím. Mám na stránke PHPčkom dynamicky generovaný formulárový prvok SELECT, ktorý ma zobraziť rok uskutočnenej cesty vlakom, roky chcem zobraziť v SELECTE len raz (kvôli tomu použijem v dotaze GROUP BY). Problém je ale v tom, že stĺpec, z ktorého rok vyťahujem je typu DATE, teda potrebujem získať len prvé štyri znaky z reťazca. Skúsil som použiť SQL funkciu SUBSTRING, ale neviem kde všade ju v dotaze použiť. Viac napovie celý dotaz v PHP, ktorý mi ale nefunguje: . $sel="SELECT SUBSTRING('datum_cesty',1,4) FROM `cesty_sk` GROUP BY SUBSTRING('datum_cesty',1,4) ORDER BY SUBSTRING('datum_cesty',1,4)"; . Môžte poradiť ako na to?
-
Myslím, že stačí: SELECT DISTINCT YEAR('datum_cesty') FROM `cesty_sk` ORDER BY datum_cesty; DISTINCT - odstraní duplicity, takže bude pouze jeden konkrétní rok YEAR() - http://dev.mysql.com/doc/refman/5.5/en/date-and-time-functions.html#function_year ORDER BY - seřadí od nejstarší po nejnovější
-
Ďakujem za námet. Vyskúšal som to, ale nefunguje, výstup Vášho dotazu je v názve stĺpca YEAR('datum_cesty') a jediná hodnota v stĺpci NULL. Každopádne sa s tým ešte pohrám a tiež si to pozriem v učebnici na vašich odkazoch - možno je to elegantejšie riešenie ako to moje uvedené nižšie . Riešenie som už našiel, funguje mi toto: $sel="SELECT SUBSTRING(datum_cesty,1,4) AS sub FROM `cesty_sk` GROUP BY sub ORDER BY `datum_cesty`;";
-
Tipl bych si, že ta funkce má být YEAR(datum_cesty). Nemůžeš jen slepě opisovat.
-
Áno, bez apostrofov to funguje! Ďakujem za príspevky.
-
Chyby se stávají. Zvláště, když jdou jen tak z hlavy a bez vyzkoušení ;)