我正在为我的 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)