我找到了一个我试图在项目中使用的嵌套集模型的示例。我无法理解正在发生的事情的一小部分,这反过来使我无法根据我的需要调整它。示例如下所示:
LOCK TABLE nested_category WRITE;
SELECT @myRight := rgt FROM nested_category
WHERE name = 'TELEVISIONS';
UPDATE nested_category SET rgt = rgt + 2 WHERE rgt > @myRight;
UPDATE nested_category SET lft = lft + 2 WHERE lft > @myRight;
INSERT INTO nested_category(name, lft, rgt)
VALUES ('GAME CONSOLES', @myRight + 1, @myRight + 2);
UNLOCK TABLES;
我不明白行SELECT @myRight:=rgt FROM nested_category
上发生了什么。
更具体地说,我不是在抓“@myRight:= rgt”。那里发生了什么?
答案 0 :(得分:1)
看起来代码将rgt
中nested_category
的行name = 'TELEVISIONS'
的值@myRight
分配给变量{{1}}。
答案 1 :(得分:1)
这是mysql中的赋值运算符。阅读此http://dev.mysql.com/doc/refman/5.0/en/assignment-operators.html
答案 2 :(得分:0)
SELECT @myRight := rgt FROM nested_category
变量myRight
将使用表rgt
中的nested_category
列中的值填充
答案 3 :(得分:0)
至少MySQL和Transact-SQL支持用户定义的变量。