gpt4 book ai didi

Mysql 函数输出作为 where 条件 in 子句的一部分

转载 作者:行者123 更新时间:2023-11-29 18:37:12 25 4
gpt4 key购买 nike

使用 GROUP_CONCAT 在 mysql 中创建了一个新函数。我的功能如下:

    CREATE  FUNCTION `Get_customerCodes`(customer_id int(11)) 
RETURNS varchar(500) CHARSET utf8
BEGIN
Declare Result VARCHAR(1000);
set Result = (select GROUP_CONCAT(concat('\'', customer_code,'\'')
SEPARATOR ',') from customers
where customer_id in (customer_id));
Return Result;
END

当我调用上面的函数时,它返回逗号分隔的客户代码,如下所示“1”、“2”、“3”、“4”。

但我需要使用输出 Get_customerCodes 函数导致 where 子句 IN 条件。

测试用例:

 select * from my_table where customer_code IN (Get_customerCodes(CAST('1002' AS SIGNED)));

期望:

执行上述查询时,mysql 应该根据函数输出给出结果。实际查询如下所示

select * from my_table where customer_code IN ('1','2','3','4');

问题:

  • 是否可以使用mysql函数输出作为where的一部分条件IN子句。
  • 如果可能,请提供示例。如果不可能的话给我一个替代方案解决方案。

最佳答案

我遇到了类似的问题,并在FIND_IN_SET的帮助下解决了它:

SELECT * FROM my_table WHERE FIND_IN_SET(customer_code, Get_customerCodes(1002));

关于Mysql 函数输出作为 where 条件 in 子句的一部分,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45193942/

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