2013-04-21 2 views
-1

Мы используем пункт IN, чтобы заменить многие условия OR.
Например, могу ли я использовать любое другое условие для замены многих условий AND?Подменю для пункта IN для условий AND - Mysql

+0

Unfortuantely, нет. [SQL Relational Division] (http://www.simple-talk.com/sql/t-sql-programming/divided-we-stand-the-sql-of-relational-division/) –

+0

Трудно сказать. Можете ли вы привести пример того, что вы пытаетесь заменить? –

+2

@JW 웃: ​​Какая связь между этим вопросом и реляционным делением? – Andomar

ответ

1

Это не имело бы смысла:

YourColumn AND_IN (1,2,3) 

Это никогда не будет правдой, так как столбец не может быть два значения одновременно.

1

Нет,

Это потому, что одно поле не будет иметь несколько значений.

например.

Вы никогда бы не написать запрос, который говорит

SELECT * 
FROM 
tblName 
WHERE 
fldCol = 1 
AND fldCol = 2 
AND fldCol = 3; 
1

Я думаю, что вы ищете альтернативу для этого запроса,

SELECT ID 
FROM TableName 
WHERE col = 1 AND col = 2 AND col = 3 

который даст пустой результирующий набор, так как запись может иметь только по одному значению за раз. Это должно быть написано как:

SELECT ID 
FROM TableName 
WHERE col IN (1, 2, 3) 
GROUP BY ID 
HAVING COUNT(*) = 3 

SQL of Relational Division

Смежные вопросы