Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/82.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
为什么mysql不支持xor关键字?_Mysql_Sql - Fatal编程技术网

为什么mysql不支持xor关键字?

为什么mysql不支持xor关键字?,mysql,sql,Mysql,Sql,如果我在sql中使用xor关键字,它会显示关键字未找到。 相反,我使用的是异或和或 为什么它不能直接支持?XOR不是SQL标准的一部分。现在不是,也从来没有过。原因可能是因为逻辑对于“业务”用户并不明显 你可以很容易地表达出来: where (x or y) and not (x and y) MySQL 5.5+正式支持XOR 尽管XOR不是标准SQL语法的一部分,但根据其定义: a XOR b = (a AND NOT b) OR (NOT a AND b) 如果需要,可以在sql语句

如果我在sql中使用xor关键字,它会显示关键字未找到。 相反,我使用的是异或和或


为什么它不能直接支持?

XOR
不是SQL标准的一部分。现在不是,也从来没有过。原因可能是因为逻辑对于“业务”用户并不明显

你可以很容易地表达出来:

where (x or y) and not (x and y)

MySQL 5.5+正式支持XOR


尽管XOR不是标准SQL语法的一部分,但根据其定义:

a XOR b = (a AND NOT b) OR (NOT a AND b)
如果需要,可以在sql语句中的任何位置使用它,例如:

SELECT * FROM tablename WHERE (a AND NOT b) OR (NOT a AND b) 

欢迎来到Stack Over flow。有许多不同的SQL版本,与您正在使用的数据库服务器类型有关。你能用一个合适的版本号来标记你正在使用的东西吗?一般来说,“为什么$language缺少$feature”的原因是,我认为MySql有一个好的版本号?F.e.见。那么,您使用的MySql的哪个版本缺少XOR?@Caleth谢谢,这是一篇有趣的文章。基本上,它可以归结为“一旦添加了它,就需要弃用/删除它,所以在添加新功能之前要明智地选择”。语言设计的一个特点是,在语言中添加许多核心特性可能会给编码人员带来更多的表达能力和灵活性。但是因为同样的事情可以用不同的方式来完成,这使得维护旧代码最终变得更加困难。而不是使用1个AND、1个OR和1个NOT门。如果我们有一个异或门,它是非常简单的use@RajaSethupathiV . . . SQL与硬件相去甚远。不幸的是,这种优化对查询性能几乎没有影响,而查询性能主要取决于访问数据的成本