gpt4 book ai didi

sql - 令人沮丧的 MySQL CREATE PROCEDURE 错误

转载 作者:行者123 更新时间:2023-11-29 04:31:24 34 4
gpt4 key购买 nike

希望这是一个很好的快速解决问题。

这是我的 .sql 文件:

USE my_db;

DELIMITER $$
CREATE PROCEDURE searchLocation(IN argQuery VARCHAR(32), IN argLimit INT)
BEGIN
SELECT DISTINCT `suburb`, `postcode`
FROM `location`
WHERE `suburb` LIKE '%argQuery%'
OR `postcode` LIKE 'argQuery%'
LIMIT argLimit
;
END
$$
DELIMITER ;

这是输出:

ERROR 1064 (42000) at line 4: 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 'argLimit
;
END' at line 8

所以它似乎不喜欢我的参数 argLimit,但我不知道为什么。我一定是在做傻事。

我正在使用 MySQL 5.0.51。

谢谢。

最佳答案

LIMIT 必须是常量,不能在 MySQL 的过程或函数内进行参数化。但是,可以使用 PREPARE ... EXECUTE ... USING 解决此问题。语法。

它最终可能看起来有点像这样:

...
SET @qry= argQuery;
SET @lmt= argLimit;

PREPARE stmt FROM 'SELECT ... LIKE ? ... LIKE ? ... LIMIT ?';
EXECUTE stmt USING @qry, @qry, @lmt;
DEALLOCATE PREPARE stmt;

关于sql - 令人沮丧的 MySQL CREATE PROCEDURE 错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1837414/

34 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com