Usage of MySQL's “IF EXISTS”
这是我要使用的两条语句,但是它们返回错误消息:
和
1 |
出现问号是因为我在PHP的PDO中使用了参数化的,准备好的语句。 但是,我也尝试过手动使用数据执行此操作,但这确实不起作用。
虽然我想知道为什么每个都不起作用,但如果可以使第一个查询起作用,我希望使用第一个查询。
您不能使用功能的IF控制块OUTSIDE。这样会影响您的两个查询。
将EXISTS子句改为IF函数中的子查询
实际上,布尔值返回为1或0
我发现RichardTheKiwi的示例非常有用。
如果您正在寻找类似
-我可能会在MSSQL中写的内容
1 2 3 4 5 6 7 8 9 |
-为MySQL重写
1 2 3 4 5 6 7 8 9 10 |
接受的答案效果很好,也可以使用
Mysql过程中的语法(如果情况允许),它将按照期望/预期的方式运行。这是更详尽的源代码/描述的链接:https://dba.stackexchange.com/questions/99120/if-exists-then-update-else-insert
@SnowyR解决方案的一个问题是,它的行为实际上不像"如果存在",因为在某些情况下(Select 1 = 1 ...)子查询可能返回多个行,因此会产生错误。我没有直接直接回答该问题的权限,因此我想在这里提及它,以免它避免其他人遇到我的麻烦,因此其他人可能知道这不是MSSQLServer"如果存在"的等效解决方案!
有关详细说明,请访问此处
1 2 3 4 5 6 7 8 9 10 11 12 |