Php和MySQL GROUP_CONCAT用分隔符逗号并用逗号搜索concat

是否可以在Group_concat中使用分隔符逗号进行选择
并用逗号搜索concat
这是我的mysql示例:

products_attributes_id  |products_id|   options_id|     options_values_id 
39                  |   31      |       3     |         3   
35                  |   30      |       2     |         2   
38                  |   30      |       1     |         1   
40                  |   31      |       2     |         2   
41                  |   30      |       1     |         4   
42                  |   30      |       1     |         5   
43                  |   31      |       1     |         4 

我想要GROUP_CONCAT options_values_id

SELECT *,GROUP_CONCAT(options_values_id SEPARATOR’,’)FROM products_attributes GROUP by products_id

products_attributes_id  |   products_id |   options_id  |   options_values_id   |   options_values_id
35                  |   30          |   2           |   2                   |   2,1,4,5
39                  |   31          |   3           |   3                   |   3,2,4

现在我的问题是如何通过搜索(option_values_id用逗号)找到product_id如果我的值是1,2或2,4那么我将只得到product_id = 30.
但如果我得到1,3值,我什么也得不到.因为product_id 30没有option_values_id 3
和product_id 31没有option_values_id 1.

我尝试这个代码,但我无法获得product_id

    SELECT * , GROUP_CONCAT( options_values_id
SEPARATOR ',' )
FROM `products_attributes` WHERE CONCAT(',',options_values_id,',') LIKE '%,1,2,%'
GROUP BY products_id

解决方法:

试试这个:

SELECT 
    products_id , 
    GROUP_CONCAT(options_values_id SEPARATOR ',') as ops 
FROM 
    products_attributes 
GROUP by 
    products_id
HAVING
    FIND_IN_SET('1',ops)
    OR FIND_IN_SET('3',ops)

相关文章

文章浏览阅读8.4k次,点赞8次,收藏7次。SourceCodester Onl...
文章浏览阅读3.4k次,点赞46次,收藏51次。本文为大家介绍在...
文章浏览阅读1.1k次。- php是最优秀, 最原生的模板语言, 替代...
文章浏览阅读1.1k次,点赞18次,收藏15次。整理K8s网络相关笔...
文章浏览阅读1.2k次,点赞22次,收藏19次。此网络模型提供了...
文章浏览阅读1.1k次,点赞14次,收藏19次。当我们谈论网络安...