我正在为我的 CMS 使用嵌套集,但是从 MySQL 5.5 开始我无法移动节点。
抛出以下错误:
重新排序文档时出错:MySQL-DB 中的错误:无效的 SQL:
SELECT baum2.id AS id,
COUNT(*) AS level
FROM elisabeth_tree AS baum1,
elisabeth_tree AS baum2
WHERE baum2.lft BETWEEN baum1.lft AND baum1.rgt
GROUP BY baum2.lft
ORDER BY ABS(baum2.id - 6);
错误:BIGINT UNSIGNED 值超出'(lektoren
.baum2
.id
- 6)'
错误号:1690
有人解决过这个问题吗?我已经尝试类型转换一些零件,但没有成功。
最佳答案
BIGINT UNSIGNED 是无符号的,不能为负数。
如果 id 小于 6,您的表达式 ABS(lektoren.baum2.id - 6)
将使用负中间值。
大概早期版本隐式转换为 SIGNED。你需要做 Actor 。
尝试
ORDER BY ABS(CAST(lectoren.baum2.id AS SIGNED) - 6)
关于mysql - 自 MySQL 5.5 以来的 BIGINT 超出范围错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5743069/