ELSE IF陈述是否可能?

时间:2016-09-21 02:12:44

标签: php mysql

您好我是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没有值。希望这是有道理的,我已经得到了很多投票,不知道为什么:/

2 个答案:

答案 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