Autor | Zpráva | ||
---|---|---|---|
Misha Profil * |
#1 · Zasláno: 28. 10. 2015, 17:25:23
Ahoj, trochu bojuji s tříděním adres v MySQL pomocí PSČ.
V poli adresa mám adresy ve formátu: Adam Novák Novodvorská 154/41 150 00 Praha 5 Česká republika Někdy tam jméno chybí a někdy je tam místo jména upřesňující údaj adresy. Ale to není podstatné. Mi jde o třídění podle PSČ. Potřebuji aby se vypsaly všechny adresy, u kterých PSČ začíná číslem 7. Mám to napsáno takhle: SELECT * FROM `lide` WHERE (`lide`.`adresa` regexp '[[7][0-9]{2}[:space:][0-9]{2}]'); Ví někdo co tam mám špatně? Předem moc díky za pomoc. |
||
juriad Profil |
#2 · Zasláno: 28. 10. 2015, 17:32:55
SELECT * FROM `lide` WHERE `lide`.`adresa` regexp '7[0-9]{2}[:space:][0-9]{2}' [7] je to samé jako 7 .
Pozor na to, že regex je ukrutně pomalý. Silně doporučuji vytvořit nový sloupec, do kterého to PSČ budeš ukládat jako 5 charů, potom t bude fungovat LIKE '7%' a chytí se indexy.
|
||
Tomáš123 Profil |
#3 · Zasláno: 28. 10. 2015, 17:37:38
[:space:] zachytáva aj lomku?
|
||
lionel messi Profil |
#4 · Zasláno: 28. 10. 2015, 17:46:15
Tomáš123:
„ [:space:] zachytáva aj lomku?“
Nie, ale Misha nerieši vyhľadávanie podľa čísla ulice, ale PSČ. :-) „Mi jde o třídění podle PSČ.“ |
||
Tomáš123 Profil |
#5 · Zasláno: 28. 10. 2015, 17:49:08
lionel messi:
Aha, nevšimol som si. Dik |
||
Misha Profil * |
Vyhodil jsem závorky a stejně mi to nevypisuje nic. (v databázi je přes tisíc položek, které by tomu odpovídaly)
Nevím jestli není problém v tom space, ale jak to jinak řešit? |
||
Časová prodleva: 9 let
|
0