sql >> Databáze >  >> RDS >> Mysql

MYSQL:Dokážete získat výsledky, které odpovídají 3 ze 4 výrazů?

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;

Vedlejší poznámka:toto velmi pravděpodobně nebude používat indexy efektivně. Na druhou stranu u těchto typů sloupců stejně velmi pravděpodobně nebudou žádné indexy.



  1. PL/SQL vytiskne referenční kurzor vrácený uloženou procedurou

  2. Jak mohu vybrat řádky v MySQL počínaje daným číslem řádku?

  3. Závažná chyba při provádění příkazu MySQL VB

  4. Určení, zda jsou pole Data v Oracle typu Number