повдигнахте въпрос, свързан с моя отговор тук .
В просто обяснение, използвайки тези твърдения по-долу,
SELECT * FROM TableName WHERE column1 IN (1, 2, 3, 4)
-- versus
SELECT * FROM TableName WHERE 1 IN (column1, column2, column3, column4)
Първото изявление включва само ЕДНА КОЛОНА което се сравнява с множество стойности .
SELECT *
FROM TableName
WHERE column1 = 1 OR
column1 = 2 OR
column1 = 3 OR
column1 = 4
докато второто изявление е A VALUE което е сравнено с множество колони .
SELECT *
FROM TableName
WHERE column1 = 1 OR
column2 = 1 OR
column3 = 1 OR
column4 = 1
които са малко по-различни един от друг.
АКТУАЛИЗИРАНЕ 1
Ето третата форма на IN
клауза: