2012-05-30 16 views
13

Czy SQL jest w stanie zrobić coś podobnego do tego: SELECT * FROM table WHERE column = everythingSQL WHERE kolumna = wszystko

+2

Wystarczy usunąć tę część sznurka. Jeśli nie dbasz o wartość 'column' - nie wstawiaj jej nawet' where' – zerkms

+0

, jeśli nie potrzebujesz kolumny, a następnie usuń całą definicję WHERE –

+0

FWIW (niektóre mogą znaleźć to, co jest interesujące): Jeśli "WHERE 'jest wymagane (ponieważ, no cóż, czasami systemy zmienne wymagają tego czasami ...), wtedy' WHERE 1 = 1' będzie "pasował do wszystkiego". Podobnie można to rozszerzyć (po raz kolejny w przypadku tych zmiennych systemów) "WHERE 1 = 1 OR c =" nie przejmuj się "... –

Odpowiedz

13

Twoje pytanie umożliwiają trzy intrepretations:

  1. Nie dbam o kolumnie: upuścić go z klauzuli WHERE (lub upuszczać gdzie klauzuli alltogether , jeśli to było jedyne podsumowanie). Chcesz ustawić kolumnę, ale nie zależy Ci na tym, co: Użyj WHERE column IS NOT nULL
  2. Chcesz wyszukiwania, które mogą również wyświetlić wszystkie rekordy z prostego szablonu SQL: SELECT * FROM table WHERE column LIKE '%$searchterm%'
6

Wszystko czy coś?

Można użyć symbolu wieloznacznego, jak sądzę.

SELECT * FROM table WHERE column LIKE "%" 
+3

Nie, jesteś w błędzie. '= '%'' oznacza "wartość dokładnie równą jednemu procentowi znaków" – zerkms

+0

I znowu się mylicie, ponieważ nie zawierałoby wartości "NULL" – zerkms

+1

Jaki jest tego cel?Następnie wystarczy "WYBIERZ * Z tabeli". Jeśli nie potrzebujesz filtra, nie używaj klauzuli "WHERE". – nico

1

Być może szukasz operatora kryteriów IN? WYBIERZ * z tabeli, w której kolumna (1,2,3,4,5) lub kolumna ("wartość", "wartość2", "wartość3");

17
SELECT * FROM table 

Jeśli generowania SQL dynamicznie, to

SELECT * FROM table WHERE 1=1 

1=1 zastępczy pozwala przywrócić wszystkie rekordy, lub zastąpić rzeczywistą kondycję jeśli powrocie podzbiór lub potrzebują dodatkowych instrukcji warunkowych .

Zobacz także
Why would someone use WHERE 1=1 AND <conditions> in a SQL clause?

+0

Ale jeśli jest to przygotowane oświadczenie , 1 = 1 nie zadziała, ponieważ jest automatycznie uciekł, nie? – JayIsTooCommon

+0

Jeśli jest to przygotowane oświadczenie, czy nie ma już GDZIE? –

+0

Podoba mi się rozwiązanie 1 = 1! – KinoP

2

To jest późno, ale może okazać się pomocne dla innych

Można spróbować.

where 
    isnull([column], '') = CASE WHEN @column IS NULL THEN isnull([column], '') ELSE @column END