gpt4 book ai didi

多次使用相同参数的Mysql Prepared Statement

转载 作者:行者123 更新时间:2023-11-29 03:07:25 24 4
gpt4 key购买 nike

我这样写存储过程:

  DELIMITER $$
CREATE PROCEDURE searchByTerm(term VARCHAR(300))
BEGIN
SET @statment = "Select name,description from products where name like '%?%' OR description like '%?%'";
PREPARE stmt FROM @statment;
SET @a = term;
SET @b = term;
EXECUTE stmt USING @a,@b;
DEALLOCATE PREPARE stmt;
END$$

称它为:

CALL searchByTerm('xyz');

它会导致以下错误:

Error Code : 1210
Incorrect arguments to EXECUTE

我做错了什么吗?我知道这可以用 concat 语句来完成,但为什么它不能像这样工作?我不能多次使用相同的参数吗?感谢您的帮助..

最佳答案

使用 CONCAT 在您的查询中

SET @statment = "Select name,description 
from products
where name like CONCAT('%', ? ,'%') OR
description like CONCAT('%', ? ,'%')";

因此您的完整查询将如下所示,

DELIMITER $$
CREATE PROCEDURE searchByTerm(term VARCHAR(300))
BEGIN
SET @statment = "Select name,description
from products
where name like CONCAT('%', ? ,'%') OR
description like CONCAT('%', ? ,'%')";
PREPARE stmt FROM @statment;
SET @a = term;
SET @b = term;
EXECUTE stmt USING @a,@b;
DEALLOCATE PREPARE stmt;
END$$

关于多次使用相同参数的Mysql Prepared Statement,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13263698/

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