【发布时间】:2020-11-12 19:16:26
【问题描述】:
我正在尝试运行 MySQL 查询,但出现以下错误。
错误:
DBD::mysql::st execute failed: 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 'LIMIT 50
# LIMIT 50
)' at line 20 at /usr/local/Call.pm line 626.
代码:
UPDATE schedule SET owner = ?
WHERE id in
(SELECT id from schedule
WHERE owner < 0
AND status IN ($STATUS_REQUESTED, $STATUS_NO_STATUS, $STATUS_IN_PROGRESS)
AND lastaction < TO_DATE(?, '$datefmt')
AND
$self->{flowrate} >
(
SELECT COUNT(*) FROM schedule b
WHERE dialoutstart > b.dialoutstart
AND owner < 0
AND status IN ($STATUS_REQUESTED, $STATUS_NO_STATUS, $STATUS_IN_PROGRESS)
AND lastaction < TO_DATE(?, '$datefmt')
)
AND LIMIT <= $self->{flowrate}
)
SQL 版本:5.*。
这里会导致语法错误的问题是什么?
【问题讨论】:
-
我不明白准备好的和未准备好的变量的混合。
-
不过就是说,TO_DATE 不是 mysql 函数,所以不妨先弄清楚你实际使用的是哪个 RDBMS