您好我是MySQL和PHP的新手,只是想知道这是否是MySQL查询有效:
IF (NOT EXISTS(SELECT uid2 FROM table WHERE uid1 = '$uid1'))
BEGIN
UPDATE table
SET uid2 = $var
END
ELSE
IF (NOT EXISTS(SELECT uid3 FROM table WHERE uid1 = '$uid1'))
BEGIN
UPDATE table
SET uid3 = $var
END
我试图将$ var插入到我的表中,但前提是uid2和uid3没有值。希望这是有道理的,我已经得到了很多投票,不知道为什么:/
答案 0 :(得分:2)
我认为您可以在不使用IF
的情况下将其缩减为单个查询:
UPDATE table
SET uid2 = $var,
uid3 = $var
WHERE NOT EXISTS (SELECT * FROM table WHERE uid1 = '$uid1')
据我所知,您的两个NOT EXISTS
条件在逻辑上是相同的。
答案 1 :(得分:0)
当我们在mysql中使用EXISTS或NOT EXISTS语句时,子查询总是以select *语句开头,如下所示。
NOT EXISTS(SELECT * FROM table WHERE uid1 = '$uid1')
试试吧。
IF (NOT EXISTS(SELECT * FROM table WHERE uid1 = '$uid1'))
BEGIN
UPDATE table
SET uid2 = $var
END
ELSE
IF (NOT EXISTS(SELECT * FROM table WHERE uid1 = '$uid1'))
BEGIN
UPDATE table
SET uid3 = $var
END