gpt4 book ai didi

mysql - 如何在 WHERE IN 子句中使用字符串函数结果

转载 作者:行者123 更新时间:2023-11-30 01:25:27 25 4
gpt4 key购买 nike

在MySql中,如何在WHERE IN子句中使用字符串函数结果?

例如:-

select * from 产品 p left join 目录 c on c.catalogid in ((TRIM(BOTH ',' FROM (REPLACE(p.catalog_ids,',,',',')))));

这里p.catalogs_ids=',36,,37,,38,';

但是上面的查询结果是

select * from product p left join catalog c on c.catalogid in ('36,37,38');

任何帮助将不胜感激。

最佳答案

问题是您尝试在字符串上使用 IN。进行字符串比较,而不是使用:

SELECT * 
FROM product p
LEFT JOIN catalog c
ON ',' + p.catalog_ids + ',' LIKE '%,' + c.catalogid + ',%'

额外的逗号有点令人费解,但这是为了确保匹配的是整数而不是数字的一部分。您没有说明catalogid是什么类型,因此您可能需要像这样转换它:

SELECT * 
FROM product p
LEFT JOIN catalog c
ON ',' + p.catalog_ids + ',' LIKE '%,' + CAST(c.catalogid AS CHAR) + ',%'

关于mysql - 如何在 WHERE IN 子句中使用字符串函数结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18053487/

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