查询结果在mysql和mariadb中有所不同

时间:2015-03-28 08:37:24

标签: mysql mariadb

我在mariadbmysql

中使用此查询
SELECT * FROM DTL_RECEIVES D
WHERE ((D.QTYACL - D.QTYRCV  ) <>0 )

mysql我没有任何错误。

但在mariadb中发生了以下错误:

  

“写入0Data列时发生数据截断错误,长度为0个字节,传输了0个字节。”

供参考:

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)

1 个答案:

答案 0 :(得分:0)

我怀疑它与减去UNSIGNED有关。 MariaDB更适合ANSI兼容。

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

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

更好的答案是使QTYACLQTYRCV成为同一类型。目前,您有一个SIGNED和一个UNSIGNED