gpt4 book ai didi

mysql - 带有 MySQL 存储过程的动态 IN 语句

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

我想在 MySQL 存储过程中构建动态 IN 语句。我尝试了多种方法,但无法获得有效的方法。这是我最接近成功的一次,但它只处理列表中的第一个值:103

我更愿意使用存储过程,而不是在客户端中完全构建此 SQL 语句,然后执行它。有谁知道在存储过程中动态构建 SQL 语句的一般规则,尤其是 IN 语句?

call foo2('103,104,105,106');

这是存储过程:

-- --------------------------------------------------------------------------------
-- Routine DDL
-- Note: comments before and after the routine body will not be stored by the server
-- --------------------------------------------------------------------------------
DELIMITER $$

CREATE DEFINER=`root`@`%` PROCEDURE `foo2`(
szList VARCHAR(256)
)
BEGIN

SELECT
E_Id, EX_Value

FROM
E

WHERE
EX_Value IN (szList);

END

最佳答案

对于 MySQL 使用 FIND_IN_SET 怎么样。我认为这个链接可能对您有帮助( How to pass a list of IDs to MySQL stored procedure? )

关键部分是定义

szList as TEXT 

并使用

FIND_IN_SET(Ex_Value, szlist) 

而不是 Ex_Value IN (szlist)

关于mysql - 带有 MySQL 存储过程的动态 IN 语句,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22212908/

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