如何在MySql中声明变量?

时间:2011-07-20 06:11:39

标签: mysql

这是我的表:

Id名称计数

1 Apple 1

2 Peach 1

如果我只将Name和MySql设置为“安全更新模式”(在此模式下,无法使用out键更新表中的术语)。所以我首先需要按名称获取Id,然后更新行。

在SqlServer中,我可以像下面这样做:

DELCARE @Id INT;
SELECT @Id=(SELECT Id FROM MyTable WHERE Name='Apple')

IF(@Id IS NOT NULL)
BEGIN
  UPDATE MyTable
    SET Count=2
  WHERE Id=@Id
END

在MySql中,我该怎么办?

1 个答案:

答案 0 :(得分:2)

您需要使用set关键字来声明变量,但实际上并不需要它。

UPDATE MyTable 
    SET Count=2
  WHERE ID IN ( SELECT * FROM (SELECT ID FROM MyTable WHERE name = 'Apple') S)

这不是世界上效率最高的,但是当更新查询依赖于它正在更新的表时,它可以作为一种解决方法。