我正在为我的内容管理系统使用嵌套集,但从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无符号值超出'(lektoren.baum2.id -6的范围)‘
错误号: 1690
有没有人解决了这个问题?我已经试过扮演一些角色了,但是没有成功。
发布于 2011-04-21 19:08:36
BIGINT UNSIGNED是无符号的,不能为负数。
如果id小于6,则表达式ABS(lektoren.baum2.id - 6)将使用负中间值。
可能更早的版本隐式地转换为签名。你得打个石膏。
试一试
ORDER BY ABS(CAST(lectoren.baum2.id AS SIGNED) - 6)发布于 2014-01-14 19:22:35
SET sql_mode = 'NO_UNSIGNED_SUBTRACTION';在执行查询之前调用此函数。
发布于 2012-08-13 00:24:25
ORDER BY ABS(CAST(lectoren.baum2.id AS BIGINT SIGNED) - 6)
这一更改将仅限于mysql。
相反,你应该这样做
ORDER BY ABS(- 6 + baum2.id);https://stackoverflow.com/questions/5743069
复制相似问题