sql >> Database teknologi >  >> RDS >> Mysql

MYSQL:Kan du trække resultater, der matcher som 3 ud af 4 udtryk?

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;

Sidebemærkning:dette vil højst sandsynligt ikke bruge indekser effektivt. På den anden side vil der højst sandsynligt ikke være nogen indekser på den slags kolonner alligevel.



  1. Hvordan man behandler MAX() af en tom tabel som 0 i stedet for NULL

  2. 3 måder at konvertere et heltal til decimal i SQL Server

  3. 4 Nyttige kommandolinjeværktøjer til at overvåge MySQL-ydeevne i Linux

  4. SQL-forespørgsel for at få den seneste række for hver forekomst af en given nøgle