Ahoj chtěl bych vypsat výberovou podmínku
mam tabulce sloupec typu varchar(10) kterej obsahuje např čisla 1234 nebo třeba jen 2 čísla 56 apod
v php to vyberu řadek, přiřadím to do proměnné např. cislo a chci udělat podmínku
if (tato proměnná v sobě obsahuje např. 2)
dá se to? jak to zapsat?
Nechápu část dotazu - podmínku chceš udělat v sql dotazu nebo až v php? Chápu to tak, že až v php, ale v tom případě nevím, proč je dotaz v kategorii sql.
V php se to samozřejmě dá. Stačí ti ereg nebo preg_match a základní znalost regulárních výrazů. (na to, jak to zapsat už určitě přijdeš sám ;))
php.net/ereg
php.net/preg_match
www.regularnivyrazy.info/shrnuti-syntaxe.html
V sql to lze udělat do jisté míry udělat taky - jen záleží na tom, jestli pro všechny řádky hledáš stejný kousek řetězce (pak to bude jednoduché) nebo jiný (pak to bude zbytečně složité nejen napsat, ale i hardwareově a bylo by lepší řešení přes php).
Jo chcu to v php, uvědomil jsem si pozdě že tento dotaz sem nepatří. Ale děkuju za radu, ty odkazvy jsou dobrý snad na to příjdu
na zjisteni, jestli retezec obsahuje nejaky znak nebo retezec, je lepsi pouzit strpos. regulary bych pouzil az pokud to je opravdu potreba
Pavel: Ujasni si rozdíl mezi číslem a číslicí. Pak ti možná budeme rozumět.
Na úrovni SQL se výběr dá udělat prostřednictvím operátoru LIKE. Mám však takové tušení, že množina by byla elegantnější.
MySQL umožňuje používat regulární výrazy přes RLIKE (alias REGEXP).
zbi: To jo, ale v tomto případě mi to připadá jako kanón na vrabce.
Už použití LIKE často svědčí o tom, že databáze není normalizovaná. Přesněji: Nesplňuje ani první normální formu. SQL server pak takové podmínky nemůže optimalizovat a výkon jde do háje. Záleží samozřejmě na počtu záznamů. Pokud je jich víc, určitě bych nějakou normalizaci udělal.