2012-05-30 17 views
13

SQL è in grado di fare qualcosa in questo modo: SELECT * FROM table WHERE column = everythingSQL WHERE colonna = tutto

+2

Basta rimuovere quella parte della stringa. Se non ti interessa il valore 'column' - non lo metti nemmeno in' where' – zerkms

+0

se non hai bisogno di una colonna quindi rimuovi l'intera definizione WHERE –

+0

FWIW (alcuni potrebbero trovare questo di interesse): Se un 'WHERE 'è richiesto (perché, beh, a volte i sistemi volubili lo richiedono a volte ...) quindi' WHERE 1 = 1' "corrisponde a tutto". Allo stesso modo questo può essere esteso (ancora una volta, per quei sistemi volubili) 'WHERE 1 = 1 O c = 'don''t care'' ... –

risposta

13

La tua domanda consentono tre intrepretations:

  1. Lei non si cura di colonna: cadere il dalla clausola di cui (o far cadere la clausola di cui alltogether , se questa era l'unica proposizione secondaria)
  2. Vuoi che la colonna sia impostata, bit non ti interessa a cosa: Usa WHERE column IS NOT nULL
  3. Volete una ricerca, che può anche visualizzare tutti i record da un semplice modello di SQL: SELECT * FROM table WHERE column LIKE '%$searchterm%'
6

Tutto o niente?

Si potrebbe usare un carattere jolly.

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

No, ti sbagli. '= '%'' significa "il valore esattamente uguale a uno percento char" – zerkms

+0

E hai sbagliato ancora una volta, perché non avrebbe incluso i valori di 'NULL' – zerkms

+1

Qual è il punto di questo?Quindi solo "SELECT * FROM table'. Se non hai bisogno di un filtro, non usare una clausola 'WHERE'. – nico

1

Stai forse cercando l'operatore criteri IN? SELEZIONA * dalla tabella in cui colonna in (1,2,3,4,5) o colonna in ('valore', 'valore2', 'valore3');

17
SELECT * FROM table 

Se si sta generando SQL in modo dinamico, è

SELECT * FROM table WHERE 1=1 

Il 1=1 segnaposto consente di restituire tutti i record, o sostituire un reale condizione se si sta tornando un sottoinsieme o bisogno di ulteriori istruzioni condizionali .

Vedere anche
Why would someone use WHERE 1=1 AND <conditions> in a SQL clause?

+0

Ma se è una dichiarazione preparata , 1 = 1 non funzionerà in quanto viene automaticamente sfuggito, no? – JayIsTooCommon

+0

Se è una dichiarazione preparata, non ha già un DOVE? –

+0

Mi piace la soluzione 1 = 1! – KinoP

2

Questo è in ritardo, ma può essere utile agli altri

si può provare questo.

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