2012-05-30 18 views
13

SQL es capaz de hacer algo similar a esto: SELECT * FROM table WHERE column = everythingSQL DONDE columna = todo

+2

Simplemente elimine esa parte de la cadena. Si no le importa el valor de 'columna '- ni siquiera lo ponga en' where' – zerkms

+0

si no necesita una columna, entonces elimine toda la definición WHERE –

+0

FWIW (algunos pueden encontrar esto de interés): If a' WHERE 'se requiere (porque, bueno, a veces los sistemas volubles lo requieren a veces ...) entonces' WHERE 1 = 1' hará que "coincida con todo". Del mismo modo, esto se puede extender (una vez más, para esos sistemas inconstantes) 'DONDE 1 = 1 O c = 'no importa' ... –

Respuesta

13

Su pregunta permiten tres intrepretations:

  1. Usted no se preocupan por la columna: bajan el árbitro de la cláusula where (o abandonan la cláusula where alltogether , si esta fuera la única subcláusula)
  2. Desea que se establezca la columna, lo que no le importa a qué: Use WHERE column IS NOT nULL
  3. desea realizar una búsqueda, que también puede mostrar todos los registros de una plantilla de SQL simple: SELECT * FROM table WHERE column LIKE '%$searchterm%'
6

¿Algo o algo?

Podría usar un comodín, supongo.

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

No, estás equivocado. '= '%'' significa "el valor exactamente igual a un porcentaje de caracteres" – zerkms

+0

Y se equivoca una vez más, porque no incluiría los valores 'NULL' – zerkms

+1

¿Qué sentido tiene eso?Luego solo 'SELECCIONAR * FROM tabla'. Si no necesita un filtro, entonces no use una cláusula 'WHERE'. – nico

1

¿Quizás esté buscando el operador de criterios de IN? SELECCIONAR * de la tabla donde la columna en (1,2,3,4,5) o la columna en ('valor', 'valor2', 'valor3');

17
SELECT * FROM table 

Si se está generando SQL de forma dinámica, es

SELECT * FROM table WHERE 1=1 

El marcador de posición 1=1 le permite devolver todos los registros, o sustituir una condición real, si usted está volviendo un subconjunto o necesita instrucciones condicionales adicionales .

Ver también
Why would someone use WHERE 1=1 AND <conditions> in a SQL clause?

+0

Pero si es una declaración preparada , 1 = 1 no funcionará ya que se escapó automáticamente, ¿no? – JayIsTooCommon

+0

Si es una declaración preparada, ¿ya no tiene un DÓNDE? –

+0

¡Me gusta la solución 1 = 1! – KinoP

2

Ésta es tarde, pero puede ser de utilidad para otros

Puede probar esto.

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