Autor | Zpráva | ||
---|---|---|---|
Prochy Profil |
#1 · Zasláno: 5. 10. 2012, 10:44:29
Zdravim,
chci se zeptat, mám v databázi telefonní čísla, česká jsou bez předvolby, ostatní s předvolbou. A já potřebuji, když budu mít číslo např. +420666666666, tak aby mi to našlo v DB, kde je jen 666666666. Ale bohužel mě vůbec nic nenapadá. Myslel jsem něco takového SELECT * FROM message_archive WHERE '+420666666666' LIKE phone_number
A před to phone_number dát nějakou masku, že se tam může i objevit + nějaký čísla. V jiném případě to udělám, až následně v php přes strstr. Děkuji za odpověď. |
||
Sir Tom Profil |
#2 · Zasláno: 5. 10. 2012, 10:53:17
Prochy:
Také zdravím, můžeš na urovni php (ještě před dotazem na mysql) číslo, které začíná na +420 upravit tak, aby nezačínalo na +420. Anebo můžeš udělat hromadný příkaz do mysql (update), aby čísla, která nemají předvolbu, dostaly předvolbu na +420. |
||
Kajman Profil |
#3 · Zasláno: 5. 10. 2012, 10:57:09
Případně si v php vygenerovat něco jako
where phone_number in ('+420666666666','666666666') |
||
Prochy Profil |
#4 · Zasláno: 5. 10. 2012, 11:13:36
Sir Tom:
Pravda, mělo mě to napadnout, že si to mám předupravit, ještě před hledáním, hledal sem v tom složitosti. Díky oběma za rady. |
||
peta Profil |
#5 · Zasláno: 5. 10. 2012, 12:37:44
Neslo by treba tohle?
WHERE '666666666' IN (cislo,'+420'+cislo) Ja bych to ale opravil do databaze s predvolbou, at to mas jednotne. |
||
Kajman Profil |
#6 · Zasláno: 5. 10. 2012, 16:00:20
peta:
„Neslo by treba tohle?“ Nešlo. |
||
Joker Profil |
#7 · Zasláno: 5. 10. 2012, 18:55:49
Nebo by měl fungovat dotaz na shodu posledních 9 znaků:
WHERE SUBSTRING(phone_number, -9) = '666666666' |
||
mimochodec Profil |
#8 · Zasláno: 5. 10. 2012, 19:27:02
Ta čísla by měla před vložením do databáze každopádně projít nějakou normalizací, která vyřeší nejen mezinárodní předvolby, ale taky odfiltruje mezery a nečíselné znaky. Nejen proto, že výše uvedené postupy budou zřejmě pomalejší než prosté porovnání
WHERE cislo = "666666666" , ale třeba i kvůli odhalení duplicit.
|
||
Kajman Profil |
#9 · Zasláno: 5. 10. 2012, 20:17:19
Joker:
„SUBSTRING(phone_number, -9)“ To je moc pomalé (nedá se na to použít index a upravuje to hodnoty ve všech sloupcích). |
||
Časová prodleva: 12 let
|
0