我有一个包含 2 列和一组名为 MAIN
的值的 mysql 表。
表 1:
col1, int(11)
col2, int(11)
值集: 主要:1,3,4
col1
和 col2
包含 1 到 10 之间的随机整数,代表 1000 行。然后,删除所有 col1
和 col1
包含相同整数的行。
我正在尝试从 table1 中提取这些行,其中:
col1
包含来自 MAIN
的值,而 col2
不包含。
和
col2
包含来自 MAIN
的值,而 col1
没有。
在我发明的伪代码中:
mysql_query("SELECT col1,col2
FROM table1
WHERE (col1 contains values from MAIN and col2 does not)
OR (col2 contains values from MAIN and col1 does not) ");
关于正确的语法是什么有什么想法吗?
附言这组值以 PHP 数组
开始。
最佳答案
也许您正在寻找 XOR logical operator ?
SELECT
col1,
col2
FROM
table1
WHERE
( col1 IN ( 1, 3, 4 ) XOR col2 IN ( 1, 3, 4 ) );
XOR 如何工作的小例子:
SELECT true XOR true; -- false
SELECT true XOR false; -- true
SELECT false XOR true; -- true
SELECT false XOR false; -- false
这几乎就是你的全部(col1 in ( MAIN ) and col2 not in main )或者( col1 not in ( MAIN ) and col2 in ( main ) ),但写得更简洁;)
关于php - OR 的 MYSQL 语法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6383229/