1

我找到了一个我试图在项目中使用的嵌套集模型的示例。我无法理解正在发生的事情的一小部分,这反过来又导致了它,所以我无法根据我的需要对其进行调整。该示例如下所示:

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”。那里发生了什么?

4

4 回答 4

1

看起来代码正在将rgt行中nested_category的值分配给name = 'TELEVISIONS'变量@myRight

于 2012-05-07T20:45:38.853 回答
1

这是mysql中的赋值运算符。阅读此http://dev.mysql.com/doc/refman/5.0/en/assignment-operators.html

于 2012-05-07T20:53:46.000 回答
0
SELECT @myRight := rgt FROM nested_category

变量myRight将填充rgt表中列中的值nested_category

于 2012-05-07T20:47:56.167 回答
0

至少MySQLTransact-SQL支持用户定义的变量。

于 2012-05-07T20:54:09.817 回答