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

10-07 15:39