21. září bude sraz! Od 18.00 v restauraci Tradice v Praze u Anděla
Autor Zpráva
Ratisko
Profil
Ahoj, nevím jestli mi to nedochází jen teď, ale asi to bude spíš tím že se v programovani moc nepohybuju. Potřeboval bych z Mysql DB vybrat pouze ty zaznamy, kde hodnota ve sloupci neni ciselna a zaroven se nerovna retezci "nezadáno". Je to asi hloupý dotaz, ale v SQl syntaxi jsem nikdy neviděl nic jako WHERE sloupec != "forbiden string" a dělat to přes nějaké uložení do pole mi přijde zbytečné, když si s tím SQL určitě umí poradit. Myslím že jen nevím jak, tak se prosím zkuste někdo vyjádřit :) Dík, Ondra
Taps
Profil
Ratisko:
syntaxe typu WHERE sloupec != "forbiden string" se dá v mysql použít. Co se týče hodnoty ve sloupci tak na to bych použil regulární výraz
Ratisko
Profil
mm, a nemusí se u regulárních výrazů používat namísto = slovíčko LIKE? !LIKE by už asi byla uplná hloupost xD Jinak, děkuju, zítra to hned všechno ozkouším :)
TomášK
Profil
LIKE
není regulární výraz, je o dost slabší. Potřebujete
RLIKE
alias
REGEXP
. Regulární výraz se dá napsat tak, aby vzal jen nečíselné řetězce, případně pro negaci lze použít
NOT REGEXP
Ratisko
Profil
a lze použít třeba spíš !ISNUMERIC() ? :) kdybych tedy chtěl nečíselné výrazy
123456789
Profil *
Ona má MySQL nějakou fci IsNumeric()? To jsou mi novinky. Nějaké ekvivalenty k této fci můžete najít v této diskusi http://forums.mysql.com/read.php?60,1907,1907

Jinak to je skutečně takový problém to napsat pomocí REGEXP, http://www.regularnivyrazy.info/ ? Pokud bych chtěl vybrat jen malé nebo velké znaky, tak třeba takto: '^[a-z]*[A-Z]*$'.
Ratisko
Profil
jasny, mno ja myslim ze ve skole neco takovyho rikal ze existuje ISNUMERIC(), ale napsat to pres regularni vyrazy taky neni problem, a diky za priklad :)
123456789
Profil *
No podívej se do dokumentace MySQL, když tam do vyhledávání zadáš IsNumeric, tak to nic nenajde, proč asi... Funkci IsNumeric mají některé jiné databázové systémy, třeba MSSQL a možná ještě nějaké další, zas takový přehled nemám.
Ratisko
Profil
jio ještě něco.. jak to pracuje s diakritikou? prostě dám [a-ž] nebo je v tom nějaký háček?
Ratisko
Profil
a už vím s čím jsem si to spletl, s IS NULL ;)
Ratisko
Profil
tak jen doplním kdyby z toho někdo čerpal, že znaky s diakritikou jsou zvlášť a zapisují se jako [á-ž] - pouze malá písmena s diakritikou
TomášK
Profil
Máš někde zdroj, kde je dokumentované? Mám za to, že při zadání rozsahu se berou všechny znaky z rozsahu podle nějaké tabulky znaků (podle kódování?). Čekal bych, že v [á-ž] bude i nějaký plevel navíc. O něco nadějnější se mi zdá [[:alpha:]] a nastavení kódování, ale nemám to vyzkoušené.
Kajman_
Profil *
[á-ž] není moc rozumné pro vícebytové sady (utf8), tam by se to možná dalo zapsat jako (á|č|ď|é|ě|...|ž)

Vaše odpověď

Mohlo by se hodit

Odkud se sem odkazuje


Prosím používejte diakritiku a interpunkci.

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

0