web-dev-qa-db-fra.com

Colonne SQL WHERE = tout

SQL est-il capable de faire quelque chose dans le sens de ceci: SELECT * FROM table WHERE column = everything

18
Majo0od

Votre question permet trois intrépétations:

  1. Vous ne vous souciez pas de la colonne: supprimez-la de la clause where (ou supprimez entièrement la clause where, s'il s'agissait du seul sous-paragraphe)
  2. Vous voulez que la colonne soit définie, mais vous ne vous souciez pas de quoi: Utilisez WHERE column IS NOT nULL
  3. Vous voulez une recherche, qui peut également afficher tous les enregistrements d'un modèle SQL simple: SELECT * FROM table WHERE column LIKE '%$searchterm%'
16
Eugen Rieck
SELECT * FROM table

Si vous générez du SQL dynamiquement, c'est

SELECT * FROM table WHERE 1=1

L'espace réservé 1=1 vous permet de retourner tous les enregistrements ou de remplacer une condition réelle si vous renvoyez un sous-ensemble ou si vous avez besoin d'instructions conditionnelles supplémentaires. 

Voir également 
Pourquoi quelqu'un utiliserait-il WHERE 1 = 1 AND <conditions> dans une clause SQL?

22
Robert Harvey

Tout ou n'importe quoi?

Vous pourriez utiliser un joker, je suppose.

SELECT * FROM table WHERE column LIKE "%"
9
Steve Robbins

Pour toute personne qui A BESOIN du nom de colonne dans la requête pour une raison quelconque, une alternative intéressante serait SELECT * FROM table WHERE column = column

Ceci est très similaire à WHERE 1=1, mais il inclut le nom de la colonne, ce dont ma solution a besoin, et peut-être aussi quelques autres.

4
DubDub

C'est tard mais cela peut être utile aux autres

Vous pouvez essayer ça.

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

Recherchez-vous peut-être l'opérateur de critères IN?

1
gazarsgo