Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/58.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/heroku/2.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
如果语句语法错误,请继续获取mySQL。我怎么修理它?_Mysql_Sql - Fatal编程技术网

如果语句语法错误,请继续获取mySQL。我怎么修理它?

如果语句语法错误,请继续获取mySQL。我怎么修理它?,mysql,sql,Mysql,Sql,我总是出错。如何在MySQL中运行这样的查询 updateevents SET eventName='hi'如果ROW_COUNT()=0插入事件(eventName)值(hi) 基本上我想更新,但如果没有数据要更新,我会插入数据。有没有一种方法可以在一行中完成 编辑1 获取此错误 mysql> UPDATE Events -> SET eventName = 'hi'; IF ROW_COUNT() = 0 THEN DELETE FROM Events

我总是出错。如何在MySQL中运行这样的查询

updateevents SET eventName='hi'如果ROW_COUNT()=0插入事件(eventName)值(
hi

基本上我想更新,但如果没有数据要更新,我会插入数据。有没有一种方法可以在一行中完成

编辑1 获取此错误

mysql> UPDATE Events
    -> SET eventName = 'hi';

IF ROW_COUNT() = 0
THEN
    DELETE FROM Events
    WHERE EventID = 1;
END IF;
ERROR 1205 (HY000): Lock wait timeout exceeded; try restarting transaction
mysql>
mysql> IF ROW_COUNT() = 0
    -> THEN
    ->     DELETE FROM Events
    ->     WHERE EventID = 1;
ERROR 1064 (42000): 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 ROW_COUNT() = 0
THEN
    DELETE FROM Events
    WHERE EventID = 1' at line 1
mysql> END IF;
ERROR 1064 (42000): 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 'END IF' at line 1

要使用
IF
语句,必须在存储过程(或其他过程上下文,如触发器或计划事件)中。然后它必须是两个语句,您需要
然后
结束IF

UPDATE Events
SET eventName = 'hi';

IF ROW_COUNT() = 0
THEN
    DELETE FROM Events
    WHERE EventID = 1;
END IF;

我将使用REPLACE,因此对于您的代码: MySQL REPLACE()替换字符串中出现的所有子字符串

REPLACE INTO Events SET eventName = 'hi'

解释你想做什么。示例数据和所需结果将有所帮助。您不能在同一查询中执行
更新
删除
IF
语句只能在存储过程中使用。@GordonLinoff由于某种原因被更新,我得到一个超时错误。我编辑帖子以显示错误日志。我不能一次运行多个sql吗?不能在
mysql>
提示符处键入
IF
语句。正如我在回答中所说,它必须在存储过程中。您的第一个语句尝试更新表中的每一行。如果桌子很大,可能需要一段时间。