查询以逗号分隔的varchar

时间:2020-10-25 16:20:57

标签: mysql sql select

我有一个如下所示的SQL表

  title                     genre
--------------------|----------------------         
The Dark Knight     |  Action, Crime, Drama
The Godfather       |  Crime,Drama
Inception           |  Sci-Fi

如何编写Select查询,以便显示所有类别为“犯罪”的标题

1 个答案:

答案 0 :(得分:0)

首先,您应该修复数据模型!在列中存储多个值是一个非常非常糟糕的主意。

也就是说,有时候我们会被别人的,非常非常错误的决定所束缚。为此,MySQL具有方便的功能find_in_set()。但是,您需要使用逗号分隔的值,且不能使用空格。所以:

select t.*
from t
where find_in_set('Crime', replace(genres, ' ', '')) > 0;
相关问题