IF( proměnná v sobě obsahuje znak)
7 příspěvků
Archiv diskusního fóra
Fórum je uzavřené a slouží pouze ke čtení. Některé informace mohou být zastaralé.
-
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.