我想检查两个用户提供的值是否与数据库中的一行匹配,如果匹配,则将枚举值从0更改为1.
我知道我可以在两个查询中执行此操作,但我宁愿在一个查询中执行此操作。我唯一能找到的是如果它存在时如何更新一行,如果不存在则创建它。但是,我不希望这样,好像提供的值不正确,脚本应该退出。
我可以使用IF EXISTS (SELECT x FROM x where y = y AND z = z) UPDATE ...
这会有用吗?如果是这样,我如何检查它是否在PHP中执行?
答案 0 :(得分:3)
我认为您只需将where
用于update
:
update x
set enumcol = 1
where y = $y and z = $z;
这会更新值匹配的行。如果没有匹配的行,则不会更新任何行。
答案 1 :(得分:2)
难道只是在标准条件下完成?像:
UPDATE my_table
SET enum_field=1
WHERE one_field=[first_value] AND another_field=[second_value]
也许您还必须匹配用户ID或其他内容:
UPDATE my_table
SET enum_field=1
WHERE one_field=[first_value] AND another_field=[second_value] AND id=[user_id]
在更复杂的情况下,这个答案可能有所帮助: