php - OR 的 MYSQL 语法?

标签 php mysql

我有一个包含 2 列和一组名为 MAIN 的值的 mysql 表。 表 1:

col1, int(11)
col2, int(11)

值集: 主要:1,3,4

col1col2 包含 1 到 10 之间的随机整数,代表 1000 行。然后,删除所有 col1col1 包含相同整数的行。

我正在尝试从 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/

相关文章:

php - 如何获取插入到表中的行的日期时间

php - Instagram 屏蔽了网站的 IP?

php - 简单的 HTML 表单不会向 MySQL 表添加值

mysql - 使用 mysql join 查询选择数据

php - Form Action 的 PHP 文件不工作

javascript - 我有一个通过 ajax 调用返回选择选项的表单,但是当我保存后值不会显示

php - 使用 pdo 在文本框中使用多个 id 从 mysql 数据库获取电子邮件

php - 将动态变量插入 HTML 模板...PHP? ASP?冷聚变? MySQL?

java - 服务器时区值 'AEST' 无法识别或代表多个时区

java - 我可以一次插入多行吗?