我在 mariadb
和 mysql
中使用此查询
SELECT * FROM DTL_RECEIVES D
WHERE ((D.QTYACL - D.QTYRCV ) <>0 )
在mysql
中我没有任何错误。
但是在mariadb
中发生了以下错误:
"Data Truncation error occured on a write of column 0Data was 0 bytes long and 0 bytes were transferred."
仅供引用:
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)
最佳答案
我怀疑这与 UNSIGNED 的减法有关。 MariaDB 对于是否符合 ANSI 更加挑剔。
快速的答案可能是将查询更改为
SELECT * FROM DTL_RECEIVES D
WHERE D.QTYACL != D.QTYRCV
更好的答案是使 QTYACL
和 QTYRCV
类型相同。目前您有一个 SIGNED
和一个 UNSIGNED
。
关于mysql - mysql和mariadb查询结果不同,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29315201/