mysql - mysql和mariadb查询结果不同

标签 mysql mariadb

我在 mariadbmysql 中使用此查询

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

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

关于mysql - mysql和mariadb查询结果不同,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29315201/

相关文章:

python - django.db.utils.OperationalError : (1071, 'Specified key was too long; max key length is 767 bytes' )

C# .NET MySQL (MariaDB) 不保存数据但返回成功

docker - 如何升级作为 docker 容器运行的 MariaDB

mysql - MySQL中如何返回结果列表,WHERE只返回一个

php - MySQL 行在数据输入时被删除

php - 如何在 LARAVEL 5.2 中将数据存储到数据库

php - mysql如果计数为空则将其设为零

php - 注意第11行的: Undefined variable: title in E:\xampp\htdocs\blog4\new-post. php

mysql - Hibernate 使用 mariaDB 在映射表中生成键

mysql - mariaDB 外键中的奇怪错误