sql >> Base de Datos >  >> RDS >> Mysql

Buscar una tabla completa en mySQL para una cadena

Prueba algo como esto:

SELECT * FROM clients WHERE CONCAT(field1, '', field2, '', fieldn) LIKE "%Mary%"

Es posible que desee ver documentos de SQL para obtener información adicional sobre operadores de cadenas y expresiones regulares.

Editar:puede haber algunos problemas con los campos NULL, por lo que en caso de que desee usar IFNULL(field_i, '') en lugar de solo field_i

Distinción de mayúsculas y minúsculas :Puede usar una intercalación que no distinga entre mayúsculas y minúsculas o algo como esto:

... WHERE LOWER(CONCAT(...)) LIKE LOWER("%Mary%")

Simplemente busque en todos los campos :Creo que no hay forma de hacer una consulta SQL que busque en todos los campos sin declarar explícitamente el campo para buscar. La razón es que existe una teoría de bases de datos relacionales y reglas estrictas para manipular datos relacionales (algo así como álgebra relacional o codd algebra; esto es de lo que proviene SQL), y la teoría no permite cosas como "simplemente buscar en todos los campos". Por supuesto, el comportamiento real depende de la realización concreta del vendedor. Pero en el caso común no es posible. Para asegurarte, marca SELECT sintaxis del operador (WHERE sección, para ser precisos).