Post
#1
|
|
|
Grupa: Zarejestrowani Postów: 17 Pomógł: 0 Dołączył: 10.06.2013 Ostrzeżenie: (0%)
|
Mam taką tabelę:
TABELA id / A / B / C / data w kolumnach A/B/C mogę mieć wartość 1 lub 0. Data to zapis daty, np. 2013-06-05. Chciałabym wyciągnąć wszystkie wiersze, w których: - wartość 0 pojawia się w przynajmniej jednej kolumnie (A, B lub C) z założeniem, że dla tego rekordu dowolna kolumna A/B/C ma wartość 1. - warunek jest spełniony dla określonej daty. Jak to zrobić? Próbowałam: select ID from tabela t1 where data = '2013-08-25' and exists (select 1 from tabela where t1.id = id or A <> '1' or B <> '1' or C <> '1' or D <> '1') ale to zupełnie nie to, czego szukam. Czy macie jakieś pomysły? |
|
|
|
![]() |
Post
#2
|
|
|
Grupa: Moderatorzy Postów: 4 362 Pomógł: 714 Dołączył: 12.02.2009 Skąd: Jak się położę tak leżę :D |
Zauważ, że może być tylko 0 lub 1... A więc wystarczy, że jest tylko jedno 0. Tym samym warunek spełnia wszystko co nie ma we wszystkich kolumnach 1, ale 1 musi wystąpić choć raz. Najbardziej ogólny przypadek więc to: suma wartości w interesujących nas kolumnach jest mniejsza niż liczba kolumn, ale jednosześnie choć jedna ma 1. Tu mamy 3 kolumny... a więc
W przypadku większej ilości odpowiednio:
|
|
|
|
alekto [mysql] znajdź rekordy, które w przynajmniej jednej kolumnie mają wartość 0 4.09.2013, 13:02:46
mmmmmmm [SQL] pobierz, plaintext WHERE a*b*c=0 AND a+b+c... 4.09.2013, 13:54:09
alekto Takie proste i takei genialne, dziekuje 5.09.2013, 09:36:28
sazian równie dobrze można wykorzystać operator in tylko ... 7.09.2013, 10:55:04
nospor @sazian no wlasnie nie, bo twoj warunek lyknie pol... 7.09.2013, 10:58:07 ![]() ![]() |
|
Aktualny czas: 28.12.2025 - 04:54 |