Estoy tratando de hacer una selección desde una base de datos MySQL usando la sintaxis WHERE col LIKE '%'
pero quiero seleccionar incluso los valores NULL
con esa consulta. ¿Hay algún comando/operador que pueda seleccionar cualquier dato, incluido el null
?¿Puedo hacer que WHERE col LIKE '%' seleccione valores NULL también?
Respuesta
SELECT * FROM table WHERE (job LIKE '%' OR job IS NULL)
utilizar el operador IFNULL
WHERE IFNULL(xxx, '') LIKE '%'
Esta instrucción devuelve todas las filas SALVO filas que tienen NULL en column1
SELECT * FROM table WHERE column1 LIKE '%'
Para obtener todas las filas que incluyen filas con NULL en columna 1, utilice este :
SELECT * FROM table WHERE IFNULL(column1,1) LIKE '%'
de la documentación de MySQL:
IFNULL (expr1, expr2)
Si expr1 no es NULL, IFNULL() devuelve expr1; de lo contrario, devuelve expr2. IFNULL() devuelve un valor numérico o de cadena, según el contexto en el que se utiliza.
Hay una advertencia sin embargo: Si usted tiene un índice en column1, no va a ser utilizado en esta consulta, por lo que las cosas podrían ser lenta en las tablas más grandes ...
Si desea column1 COMO '%' y quiere que la columna 1 ES NULA, ¿por qué no simplemente descartar la cláusula WHERE?
Probar:
SELECT * FROM TABLE;
Esto es lo que he intentado:
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>
Después de todo, IFNULL (columna 1, 1) COMO '%' es efectivamente un no-op ...
Use COALESCE en lugar de IFNULL si desea usarlo con java createQuery
WHERE COALESCE (xxx, '') LIKE '%'
- 1. Límite en la condición WHERE col EN (...)
- 2. Cláusula SQL Where con LIKE e IN
- 3. SQL y valores NULL en la cláusula WHERE
- 4. ¿Cómo hacer que GREP seleccione solo valores numéricos?
- 5. ¿Cómo hacer que = NULL funcione en SQLite?
- 6. Seleccione un bit que admite valores NULL con un valor predeterminado
- 7. Comparando con valores NULL
- 8. SQL por qué es SELECT COUNT (*), MIN (col), MAX (col) más rápido que SELECT MIN (col), MAX (col)
- 9. ¿Cómo puedo evitar que Hibernate actualice los valores NULL?
- 10. ¿Puedo formatear valores NULL en string.Format?
- 11. "WHERE column IS NOT NULL" con Kohana v3 Query Builder
- 12. WHERE Cláusula solamente IF NOT NULL
- 13. Seleccione la orden de evaluación "where clause"
- 14. Mysql: select * from table donde col IN (null, "") posible sin OR
- 15. ¿Cómo puedo introducir múltiples condiciones de operador LIKE
- 16. Seleccione los valores que comienzan con un número
- 17. seleccione y vuelva a seleccionar valores distintos
- 18. MySQL Select con LIKE y DONDE
- 19. ¿Cómo hacer una consulta LIKE con linq?
- 20. Mysql borrar todas las filas (donde col! = This o col! = Eso o col! = Otherthing)
- 21. ¿Cómo puedo evitar que se seleccione texto?
- 22. ¿Cuál es la diferencia entre! Col y col = false en MySQL?
- 23. ¿Cómo hacer un LIKE considerando dos columnas?
- 24. ¿Puedo confiar en que malloc devolverá NULL?
- 25. Seleccione AS temp_name FROM table WHERE temp_name = something?
- 26. SQL: ¿Por qué se filtran los valores NULL dentro de esta cláusula where?
- 27. Las comparaciones con valores NULL en SQL
- 28. ¿Cómo puedo hacer que NSMutableArray solo acepte valores únicos?
- 29. ¿Cómo hacer LIKE buscar con PDO?
- 30. C++/Boost MPL: también código de estructura Haskell's let, where,
Por favor cambie su apodo. – Quassnoi