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

MYSQL:¿Puede obtener resultados que coincidan con 3 de 4 expresiones?

SELECT
  * 
FROM 
  my_table 
WHERE 
  CASE WHEN name = "john doe"           THEN 1 ELSE 0 END +
  CASE WHEN phone = "8183321234"        THEN 1 ELSE 0 END +
  CASE WHEN email = "[email protected]" THEN 1 ELSE 0 END +
  CASE WHEN address = "330 some lane"   THEN 1 ELSE 0 END
  >= 3;

Nota al margen:es muy probable que esto no utilice índices de manera eficiente. Por otro lado, es muy probable que no haya índices en este tipo de columnas de todos modos.