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

Odlišný přístup k použití klauzule IN v MySql

vznesl jste otázku, která souvisí s mou odpovědí zde .

V jednoduchém vysvětlení pomocí níže uvedených tvrzení

SELECT * FROM TableName WHERE column1 IN (1, 2, 3, 4)
-- versus
SELECT * FROM TableName WHERE 1 IN (column1, column2, column3, column4)

První příkaz obsahuje pouze JEDEN SLOUPEC který se porovnává s více hodnotami .

SELECT  *
FROM   TableName
WHERE  column1 = 1 OR
       column1 = 2 OR
       column1 = 3 OR
       column1 = 4

zatímco druhý příkaz je HODNOTA to je ve srovnání s více sloupci .

SELECT  *
FROM   TableName
WHERE  column1 = 1 OR
       column2 = 1 OR
       column3 = 1 OR
       column4 = 1

které se od sebe trochu liší.

AKTUALIZACE 1

Zde je třetí tvar IN klauzule:




  1. Vícenásobné levé spojení se součtem

  2. tomcat 7.0.42 pooling, hibernate 4.2, mysql skálopevné řešení automatického znovupřipojení

  3. Tabulka s 80 miliony záznamů a přidání indexu trvá více než 18 hodin (nebo navždy)! Co teď?

  4. SQL dotaz pro sčítání, kolikrát se určité hodnoty vyskytují ve více řádcích