206 votes

MySQL sélectionnez l'endroit où la colonne n'est pas vide

Dans MySQL, je peux sélectionner les colonnes seulement où il existe quelque chose?

Par exemple, j'ai la requête suivante:

select phone, phone2
from jewishyellow.users
where phone like '813%'
and phone2

Je suis en train de sélectionner uniquement les lignes où le téléphone commence avec 813 et fixe2 a quelque chose en elle.

315voto

Ivan Nevostruev Points 14934

Comparer la valeur de phone2 avec une chaîne vide:

select phone, phone2 
from jewishyellow.users 
where phone like '813%' and phone2<>''

Notez que NULL de la valeur est interprétée comme false.

51voto

st.stoqnov Points 628

Pour vérifier si le champ est NULL utiliser IS NULL, IS NOT NULL opérateurs.

De référence de MySql http://dev.mysql.com/doc/refman/5.0/en/working-with-null.html

39voto

davek Points 12514

Vérifiez NULL et vide de la chaîne de valeurs:

select phone
, phone2 
from users 
where phone like '813%' 
and trim(coalesce(phone2, '')) <>''

N. B. je pense FUSIONNENT() est la norme SQL(-ish), tandis que la fonction ISNULL() ne l'est pas.

19voto

micahwittman Points 6943

Si il y a des espaces dans le fixe2 champ de involontaire des données d'entrée, vous pouvez ignorer ces documents, avec le IFNULL et fonctions de découpage:

SELECT phone, phone2
FROM jewishyellow.users
WHERE phone LIKE '813%'
    AND TRIM(IFNULL(phone2,'')) <> '';

7voto

select phone, phone2 from jewishyellow.users 
where phone like '813%' and phone2 is not null

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X