Autor Zpráva
suvel
Profil
V MySQL mám tabulku se sloupcem text typu VARCHAR a uložené řetězce "1 A", "1 B", 2 A", 2 B" a "3 A" a chtěl bych je při výpisu seřadit v tomto pořadí. Nicméně, když dám ORDER BY text, seřadí se mi
3 A
1 A
1 B
2 A
2 B
a když dám ORDER BY 'text', seřadí se mi
1 A
2 B
2 A
1 B
3 A
Proč? A jakou mám dát podmínku, aby se to řadilo tak, jak chci (viz nahoře)?
Joker
Profil
suvel:
když dám ORDER BY 'text'
Řetězec "text" je stále stejný, takže se to bude řadit relativně náhodně.
Správně je: ORDER BY `text`
tiso
Profil
ORDER BY `text`
suvel
Profil
tiso: ??
Joker: Třeba jsem to špatně napsal, ale "text" není stále stejný řetězec, ale název sloupce tabulky.
Kajman_
Profil *
Věc ohraničená apostrofy je string. Není to potom název sloupce (ten se uzavírá do zpětných apostrofů)...
order by 'text' -- vždy stejný řetězec
order by `text` -- obsah sloupečku
suvel
Profil
OK, děkuju, člověk se stále učí :-)
Ale teď jsem bohužel zjistil, že ať dám
ORDER BY text
nebo
ORDER BY `text`
, výsledek je stejný, tedy
3 A
1 A
1 B
2 A
2 B
Proč je to 3 A na začátku, když má být na konci?
Kajman_
Profil *
Asi je před trojkou mezera.
suvel
Profil
Kajman:
Jo, byla tam. Co k tomu dodat?
Snad, že má člověk nejdřív hledat chybu u sebe a ne u ORDER BY :-)

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm: