ELSE IF语句可能吗?
你好,我是新来的MySQL和PHP和只是想知道,如果这是MySQL查询是有效的:ELSE IF语句可能吗?
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没有价值。希望这是有道理的我已经得到了很多选票下来,不知道为什么:/
我想你可以将此缩减为一个单独的查询,而无需使用IF
:
UPDATE table
SET uid2 = $var,
uid3 = $var
WHERE NOT EXISTS (SELECT * FROM table WHERE uid1 = '$uid1')
您的两个NOT EXISTS
就我所知,条件在逻辑上是相同的。
不,他们不是。有两列,uid2和uid3。我想插入到uid2如果还没有一个值或uid3如果有一个在uid2 – Jimbu
@Jimbu我想你可能会对'EXSTS'如何工作感到困惑。如果存在任何_record_(不是记录中的列),它将返回true WHERE uid ='$ uid1''。所以你在'EXISTS'子句中选择的列应该没有关系。 –
当我们在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
更新您的问题与一些实际的数据和所需的输出,以获得更好的结果。 –
该代码不是php –
您是否询问ELSE IF条件是否在mysql中使用,是您的问题吗? –