Diskuze: Ako zobrazit rows, len pri podmienke, ak jedno z poli je vyplnene.

PHP PHP Ako zobrazit rows, len pri podmienke, ak jedno z poli je vyplnene. American English version English version

Avatar
Peter Schoeller:

Ahojte.
Riesim vypis z db MySQL, ked potrebujem vypis len z riadkov, ak je jedno z poli (beruf1) niecim vyplnene.
Nasledovne 4 pokusy hlasia chybu:

$sql = "SELECT * from members WHERE beruf_1 LIKE != '0' ";
$sql = "SELECT * from members WHERE beruf_1 LIKE != 0 ";
$sql = "SELECT * from members WHERE beruf_1 LIKE > 0 ";
$sql = "SELECT * from members WHERE beruf_1 LIKE > 'a' ";

Notice: Trying to get property of non-object in xxxxxxx.php on line 141

Dasli zapisy:

$sql = "SELECT * from members WHERE beruf_1 LIKE '!= 0' ";
$sql = "SELECT * FROM members WHERE beruf_1 != 0 ";

vratia result 0 (ziadne vysledky)

a dalsie:

$sql = "SELECT * from members WHERE beruf_1 LIKE '%' ";
$sql = "SELECT * from members WHERE beruf_1 != '0' ";

vratia koplet tabulku, bez ohladu ci v tom poli nieco je alebo nie.

Jedine co ako tak funguje je zapis:

$sql = "SELECT * from members WHERE beruf_1 LIKE '%a%' ";

Tento zapis vypise len tie riadky, kde sa v povolani (beruf) objavi pismeno "a" co je dost casto pouzivane pismeno, ale nefunguje ak je ako povolanie zadane - "Soins engineer"
Viete mi pomoct?

 
Odpovědět 22. dubna 17:47
Avatar
LacoS.
Člen
Avatar
LacoS.:

asi myslis toto:

select * FROM menoTabulky WHERE columnX IS NOT NULL;
// alebo
select * FROM menoTabulky WHERE columnX IS NULL;

// alebo cez dlzky retazcov:
select * FROM menoTabulky WHERE length(columnX) = 0;
// ci
select * FROM menoTabulky WHERE length(columnX) > 0;
Akceptované řešení
+20 Zkušeností
+1 bodů
Řešení problému
 
Nahoru Odpovědět 22. dubna 20:04
Avatar
Odpovídá na LacoS.
Peter Schoeller:

Vdaka :)
Prva dvojica prikazov (IS) vypisala opat celu tabulku, ale ta druha dvojica cez dlzku retazca funguje :)

 
Nahoru Odpovědět 22. dubna 20:53
Avatar
hitzoR
Člen
Avatar
Odpovídá na Peter Schoeller
hitzoR:

U té první dvojice, kterou uvedl Laco S., celkem závisí na návrhu databáze. Ten první select bude fungovat jen v případě, že sloupec má možnost být null a null je nastaveno jako defaultní hodnota. Kdykoliv jindy tam bude defaultní hodnota pro daný datový typ (varchar - "", int - 0 apod.), což v mysql není bráno jako null.

Editováno 22. dubna 22:27
 
Nahoru Odpovědět  +1 22. dubna 22:26
Děláme co je v našich silách, aby byly zdejší diskuze co nejkvalitnější. Proto do nich také mohou přispívat pouze registrovaní členové. Pro zapojení do diskuze se přihlas. Pokud ještě nemáš účet, zaregistruj se, je to zdarma.

Zobrazeno 4 zpráv z 4.