gpt4 book ai didi

mysql - 如何使用以逗号分隔的行中的 where 子句数据来选择查询

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

老实说,我不知道我的问题的正确标题,而且我仍然是查询事物的新手。所以我有这样的表名 EVENT

id_event      name_event          category
----------------------------------------------
1 Market Food,Fashion,Art
2 Concert Music
3 FoodTruck Food,Bevarage

我的问题是我想选择类别 = "Food,Fashion"的类别。所以所有有“食品”和“时尚”的类别都会被淘汰,结果是这样的

 id_event      name_event          category
----------------------------------------------
1 Market Food,Fashion,Art
3 FoodTruck Food,Bevarage

也许有人可以帮助我,谢谢大家,祝你有美好的一天!干杯!!

最佳答案

这样你就可以实现你想要的:

SELECT 
*
FROM event
WHERE category REGEXP CONCAT('(^|,)(', REPLACE("Food,Fashion", ',', '|'), ')(,|$)');
<小时/>

SQL FIDDLE DEMO

注意:如果您想查看上面查询中生成的正则表达式:

SELECT CONCAT('(^|,)(', REPLACE("Food,Fashion", ',', '|'), ')(,|$)') AS 'REGEXP';

结果:(^|,)(食品|时尚)(,|$)

说明:仅当满足以下任一条件时,才会选择 category 名称中包含 Food/fashion 的记录满足条件:

  • food/fashion 前面有一个 逗号
  • 类别food/fashion
  • 开头
  • 类别food/fashion

    结尾
  • food/fashion 后面有一个逗号

建议:

Is storing a delimited list in a database column really that bad?

关于mysql - 如何使用以逗号分隔的行中的 where 子句数据来选择查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37222876/

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