Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/84.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
sql语法(如果存在)_Sql_Mysql_Mysql Error 1064 - Fatal编程技术网

sql语法(如果存在)

sql语法(如果存在),sql,mysql,mysql-error-1064,Sql,Mysql,Mysql Error 1064,为什么我会出错: #1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'IF EXISTS(SELECT id FROM mytable WHERE id = '1')' at line 1 查询: IF EXISTS(SELECT id FROM mytable

为什么我会出错:

#1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'IF EXISTS(SELECT id FROM mytable WHERE id = '1')' at line 1 
查询:

IF EXISTS(SELECT id FROM mytable WHERE id = '1')
谢谢

尝试使用

Declare @ID Integer
Select @ID=id From mytable where id=1
IF @ID is not null    OR  IF @ID > 0
Begin
....
End

现在不在MySQL机器上,但它看起来像是它的,因为语句不完整,您需要告诉它如果id存在该怎么办


如果存在(…),则执行一些在MySQL中没有意义的操作。 请参阅MySQL文档中有关用法的部分


基本上,您需要在语句中使用它,而不是像逻辑块一样,如果存在,则只在存储过程中工作。在存储过程之外,
IF()
是一个接受3个参数的函数。正确的使用是必要的

SELECT IF(EXISTS(SELECT `column` FROM `table` WHERE `id` = `1`), 1, 0);

我们需要查看您尝试使用的其余代码。这就是整个查询吗?IF语句在做什么?后面不应该有一个语句块吗?是的,如果这是整个查询-它不工作,因为它不是一个完整的语句。如果不是,我们需要其他人来判断发生了什么。这不重要
其中id='1'
即使
id
是整数也可以正常工作。我同意Mark Byers的观点-MySQL在INT和string数据类型之间进行隐式数据类型转换。感谢您的评论,您是对的,我更新了我的帖子。if EXISTS经常在SQL Server中使用,因为它比
if(SELECT COUNT()…)更详细>0
等。