Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/70.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和mariadb中的查询结果不同_Mysql_Mariadb - Fatal编程技术网

mysql和mariadb中的查询结果不同

mysql和mariadb中的查询结果不同,mysql,mariadb,Mysql,Mariadb,我在mariadb和mysql中使用这个查询 我怀疑这和无符号的减法有关。MariaDB对是否符合ANSI标准比较挑剔 快速的答案可能是将查询更改为 SELECT * FROM DTL_RECEIVES D WHERE D.QTYACL != D.QTYRCV 更好的答案是使QTYACL和QTYRCV为同一类型。当前有一个已签名和一个未签名。您使用的数据类型是什么,是双精度/浮点型吗?请提供SHOW CREATE TABLE DTL_RECEIVES。mysql给你警告了吗?@cjg:QTYA

我在mariadb和mysql中使用这个查询


我怀疑这和无符号的减法有关。MariaDB对是否符合ANSI标准比较挑剔

快速的答案可能是将查询更改为

SELECT * FROM DTL_RECEIVES D
WHERE D.QTYACL != D.QTYRCV

更好的答案是使QTYACL和QTYRCV为同一类型。当前有一个已签名和一个未签名。

您使用的数据类型是什么,是双精度/浮点型吗?请提供SHOW CREATE TABLE DTL_RECEIVES。mysql给你警告了吗?@cjg:QTYACL和QTYRCV字段的数据类型是INT11@RickJames:此创建表DTL_接收/n VIDRCV varchar50 NOT NULL DEFAULT、/n PARTNUM varchar20 NOT NULL、/n MPRICE int10 unsigned DEFAULT NULL、/n QTYACL int11 DEFAULT NULL、/n折扣int10 unsigned DEFAULT NULL、,/n AMOUNT int10 unsigned DEFAULT NULL,/n NQTYRCV int10 unsigned DEFAULT NULL,/n主键VIDRCV,PARTNUMOops,我在看NQTYRCV。QTYRCV未在D中定义!不公平!对不起,我在表说明中犯了错误:,,点是QTYACL int11默认为空,QTYRCV和QTYRCV int10未签名默认为空,不是NQTYRCV,,感谢您对@Rick James的建议+1,alter table DTL_收到修改QTYRCV int11默认为空;这个脚本节省了我的时间,谢谢大家
mysql  Ver 14.14 Distrib 5.5.41 for debian-linux-gnu (i686) 
mysql  Ver 15.1  Distrib 5.5.41-MariaDB, for Win64 (x86)
SELECT * FROM DTL_RECEIVES D
WHERE D.QTYACL != D.QTYRCV