Mysql查询if语句,更新错误
早上好,我正在尝试在遍历树中上下移动节点,但问题是,如果我有向上移动节点的查询,它会在sql语法中抛出一个错误,请问,您知道问题在哪里吗Mysql查询if语句,更新错误,mysql,sql,Mysql,Sql,早上好,我正在尝试在遍历树中上下移动节点,但问题是,如果我有向上移动节点的查询,它会在sql语法中抛出一个错误,请问,您知道问题在哪里吗 UPDATE categories SET lft = IF( lft >= 17 AND rgt <= 18, lft + 1, IF(lft >= 15 AND rgt <= 16, lft - 1)), rgt = IF( lft >= 17 AND rgt <= 18, rgt + 1, IF(lft &
UPDATE categories
SET lft = IF( lft >= 17 AND rgt <= 18, lft + 1, IF(lft >= 15 AND rgt <= 16, lft - 1)),
rgt = IF( lft >= 17 AND rgt <= 18, rgt + 1, IF(lft >= 15 AND rgt <= 16, rgt - 1))
WHERE (rgt <= 18 AND lft >= 15)
更新类别
设置lft=IF(lft>=17和rgt=15和rgt=17和rgt=15和rgt在内部IF()函数调用中缺少第三个参数,例如
IF(lft >= 15 AND rgt <= 16, lft - 1)
^ ^^^^
IF(lft>=15且rgt=15且rgt您错过了内部IF()中的第三个参数
试试这个
UPDATE categories
SET lft = IF( lft >= 17 AND rgt <= 18, lft + 1, IF(lft >= 15 AND rgt <= 16, lft - 1,0)),
rgt = IF( lft >= 17 AND rgt <= 18, rgt + 1, IF(lft >= 15 AND rgt <= 16, rgt - 1,0))
WHERE (rgt <= 18 AND lft >= 15)
更新类别
设置lft=IF(lft>=17和rgt=15,rgt=17和rgt=15,rgt@JanKožušník替换else_stmt_expre
)
UPDATE categories
SET lft = IF( lft >= 17 AND rgt <= 18, lft + 1, IF(lft >= 15 AND rgt <= 16, lft - 1,0)),
rgt = IF( lft >= 17 AND rgt <= 18, rgt + 1, IF(lft >= 15 AND rgt <= 16, rgt - 1,0))
WHERE (rgt <= 18 AND lft >= 15)