mysql和mariadb中的查询结果不同
我在mariadb和mysql中使用这个查询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对是否符合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