id_event name_event category
----------------------------------------------
1 Market Food,Fashion,Art
2 Concert Music
3 FoodTruck Food,Bevarage
我的问题是我想选择category =“Food,Fashion”的类别。所以所有具有“食物”和“时尚”的类别都会出来,结果就像这样
id_event name_event category
----------------------------------------------
1 Market Food,Fashion,Art
3 FoodTruck Food,Bevarage
也许有人可以帮助我,谢谢你们,祝你们度过愉快的一天! Cheerss !!
答案 0 :(得分:1)
这样你就可以达到你想要的效果:
SELECT
*
FROM event
WHERE category REGEXP CONCAT('(^|,)(', REPLACE("Food,Fashion", ',', '|'), ')(,|$)');
注意:强> 如果要在上面的查询中看到生成的正则表达式:
SELECT CONCAT('(^|,)(', REPLACE("Food,Fashion", ',', '|'), ')(,|$)') AS 'REGEXP';
<强>结果:强>
(^|,)(Food|Fashion)(,|$)
说明: 只有满足以下任何条件时才会选择Food/fashion
category
food/fashion
的记录:
category
之前有逗号或food/fashion
以category
或 food/fashion
以food/fashion
或
{{1}}后面有一个逗号。
<强>建议:强>
Is storing a delimited list in a database column really that bad?