10
votes

Puis-je faire où Col comme '%' Sélectionnez aussi des valeurs NULL?

J'essaie de faire une sélection à partir d'une base de données MySQL à l'aide de la syntaxe où Col comme '%' mais je souhaite sélectionner même null NULL avec cette requête. Y a-t-il une commande / opérateur qui peut sélectionner des données, y compris null ?


0 commentaires

5 Réponses :


7
votes
SELECT * FROM table WHERE (job LIKE '%' OR job IS NULL)

0 commentaires

24
votes

Utilisez l'opérateur IFNULL

WHERE IFNULL(xxx, '') LIKE '%'


1 commentaires

Travaillé comme un charme!



1
votes

Cette déclaration renvoie toutes les lignes sauf les lignes qui ont NULL dans la colonne1 xxx pré>

pour obtenir toutes les lignes, y compris toutes les lignes avec NULL dans la colonne1, utilisez ceci: p>

SELECT * FROM table WHERE IFNULL(column1,1) LIKE '%'


0 commentaires

2
votes

Si vous voulez que la colonne1 comme '%' et que vous voulez que la colonne1 soit null, pourquoi ne pas simplement laisser tomber la clause où?

Essayez: P>

mysql> create table foo (a char(30));
Query OK, 0 rows affected (0.02 sec)

mysql> insert into foo values ( '' );
Query OK, 1 row affected (0.01 sec)

mysql> insert into foo values ( NULL );
Query OK, 1 row affected (0.00 sec)

mysql> select * from foo;
+------+
| a    |
+------+
|      |
| NULL |
+------+
2 rows in set (0.00 sec)

mysql> select * from foo where a like '%' or a is null;
+------+
| a    |
+------+
|      |
| NULL |
+------+
2 rows in set (0.00 sec)

mysql> select * from foo where ifnull (a, 1) like '%';
+------+
| a    |
+------+
|      |
| NULL |
+------+
2 rows in set (0.00 sec)

mysql> 


1 commentaires

Et si votre clause a plusieurs conditions et , et vous souhaitez toujours éventuellement restreindre les résultats du champ qui serait null? Ensuite, vous aurez toujours besoin de la clause .



2
votes

Utilisez coalesce au lieu de ifnull si vous souhaitez l'utiliser avec Java Createery

WHERE COALESCE (xxx, '') LIKE '%'


0 commentaires