我有一个如下所示的SQL表
title genre
--------------------|----------------------
The Dark Knight | Action, Crime, Drama
The Godfather | Crime,Drama
Inception | Sci-Fi
如何编写Select查询,以便显示所有类别为“犯罪”的标题
答案 0 :(得分:0)
首先,您应该修复数据模型!在列中存储多个值是一个非常非常糟糕的主意。
也就是说,有时候我们会被别人的,非常非常错误的决定所束缚。为此,MySQL具有方便的功能find_in_set()
。但是,您需要使用逗号分隔的值,且不能使用空格。所以:
select t.*
from t
where find_in_set('Crime', replace(genres, ' ', '')) > 0;