Microsoft SQL Update全部

时间:2017-10-25 10:44:06

标签: php sql

我需要通过php更新SQL中的表。 当我登录我的数据库并写下:

UPDATE table1
SET whatiwant = whatiwant

它会全部更新。这就是我想要的。 但是当我用PHP编写它时,它无法正常工作。

我需要给他一个Where子句来执行它,我必须遍历所有条目。

UPDATE table1
SET whatiwant = whatiwant
WHERE id = '1'

我需要更新所有条目。为什么不起作用?

2 个答案:

答案 0 :(得分:0)

使用:

WHERE 1 = 1

匹配所有记录。

或者如果左侧需要Id,请使用无法匹配的内容,例如:

WHERE Id <> -1

如果你只有正号码。

答案 1 :(得分:0)

如果你想一直运行更新而不用where写你的语句,否则如果你想要这个SQL语句做两种不同的行为,你必须用参数写一个Stored Procedure @id:

  • 如果值传递给参数@id,则效果很好

  • 如果您将null传递给它,则会更新所有行而不包含任何where子句

SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE PROCEDURE SP
  @id int =null
AS
BEGIN     
  UPDATE table1
  SET whatiwant = whatiwant
  WHERE (id = @id OR @id IS NULL)
END
GO