Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [SQL]sprawdzenie, czy która kolwiek kolumna jest pusta
Forum PHP.pl > Forum > Przedszkole
bialko0019
Witam. Mam pytanie, jak skonstruować zapytanie, by wyciągnąć ilość rekordów, które:
- muszą w kolumnie `kolumna1` zawierać słowo kot

i teraz, z tych wszystkich sprawdzić, czy którakolwiek kolumna jest pusta ?

Myślałem nad:
  1.  
  2. SELECT COUNT(*) FROM tabela WHERE kolumna1 LIKE'kot' AND cos LIKE'' OR fdsfd LIKE'' [...]


no ale to nie jest w ogóle dobre.. nie wyciąga rekordów ze słowem kot, które mają którekolwiek pole puste... Jak sprawdzić, czy dana kolumna jest pusta i i wybranej kolumnie jest wymagane słowo ?
lobopol
1. nawiasy przy and i or smile.gif
2. Po co używasz like? Przyjrzyj się dokładnie czego szukasz
3. nie używaj count(*) zliczaj najlepiej po kolumnie z id
bialko0019
1. DODANE.
3. Nie rozumiem, mógłbyś jaśniej ?
2. Działa, po dodaniu nawiasów, ale wiem, że wpisanie cos LIKE'' to nie jest prawidłowe sprawdzenie czy ta kolumna jest pusta mógbyś przybliżyć jak to sie powinno robić ?
lobopol
3. szybciej zliczy jeżeli będzie musiało liczyć tylko po jednej kolumnie (jeszcze zindeksowanej, oczywiście nie zawsze, ale przy niektórych tabelach szczególnie na silniku innodb)
2. Ostatni obrywam za to, że daje gotowce, zastanów się do czego służy like, jest inna metoda wyszukiwania dokładnie szukanego ciągu (like szuka przybliżonego)
bialko0019
Wiem, czytałem przed chwilą Twoją wiadomość - to nie są gotowce, gotowiec byłby wtedy, gdybyś napisał mi po całości gotowe zapytanie, a tego nie chcę - tak jak w tamtym temacie z js... Chodzi mi o wyrażenie, słowo, lub metody, która sprawdza czy kolumna jest pusta - LIKE szuka wyrażenia w kolumnie, NOT LIKE sprawdza, czy nie znajduje się napewno wyrażenie, %wyrazenie% pozwala znaleźć coś "podobnego" a co sprawdza, czy jest puste ?

To tak jak bym zapytał jaka jest funkcja do sprawdzenia ilości znaków w stringu - a Ty powiedział - nie powiem Ci, że to strlen(), bo to byłby gotowiec, poszukaj w manualu i google...

Także, czekam na odpowiedź winksmiley.jpg
lobopol
No dobra, ale aby nie było za łatwo: http://www.w3schools.com/php/php_mysql_where.asp smile.gif
bialko0019
Nie przechodźmy w skrajności.. Zresztą.. Pomogłeś? Pomogłeś. Dziękuję... winksmiley.jpg
lobopol
A to dodam od siebie jeszcze jedną rzecz, w bazie możesz mieć zdefiniowaną wartość na np NULL to również pusta, ale ='' nie jest jej równa smile.gif, można sprawdzić ją np. WHERE ISNULL(nazwa_kolumny) (gdzie kolumna=null) bądź WHERE !ISNULL(nazwa_kolumny) (kolumna nie jest równa null)
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.