我有一个IF NOT EXISTS声明。如果它不存在,则遵循INSERT语句。如果EXISTS我需要了解/可以返回什么,以便我可以用PHP解释它。
这样:
IF NOT EXISTS (SELECT id FROM users WHERE lname='SMITH')
INSERT INTO users (lname='SMITH')
我认为否定将不会返回任何结果,因此可以使用标准
if ($result){echo "record added";}
else {echo "duplicate - no record added";}
但这不是正在发生的事情,我不确定如何实现我所需要的 - 任何建议?
感谢您的关注。
答案 0 :(得分:1)
您可以尝试以下方式:
SET NOCOUNT ON
IF NOT EXISTS (SELECT id FROM users WHERE lname='SMITH')
BEGIN
INSERT INTO users (lname) VALUES('SMITH')
SELECT 1
END
ELSE
SELECT 0
并检查返回的标量= 0或1?
答案 1 :(得分:1)
在这两种情况下,$result
都会返回成功运行命令的响应,仅此而已。 INSERT
不会产生任何行,IF
语句也不会产生匹配条件。
如果要检索插入的ID,可以使用SELECT SCOPE_IDENTITY()
,然后可以检查$result
是否返回了一行。