我试图建立一个电影网站。
我有一个电影表
id, moviename, actorsid
1, movie1, 1|2|3
2, movie2, 1|5|4
我有一个演员表
id, actorname
1, actor1
2, actor2
3, actor3
我想显示所有演员的电影,所以我在movie
表中进行了SELECT查询,并带有演员ID。
SELECT * FROM `movies` WHERE actors_id IN('4')
如果电影只有我的演员ID,则运行成功
SELECT * FROM `movies` WHERE actors_id LIKE '%4%'
如果我没有其他包含4的ID,则可以成功运行。例如41或14或214
答案 0 :(得分:1)
选项1: 您可以尝试以下操作:
SELECT * FROM `TB` WHERE
usersid REGEXP '^31\\|' OR
usersid REGEXP '\\|31$' OR
usersid REGEXP '\\|31\\|'
提琴:http://sqlfiddle.com/#!9/b88de5/22
在实施之前,请测试所有方案。
选项2:您可以在将管道替换为逗号后使用FIND_IN_SET,如下所示:
SELECT * FROM `TB` WHERE FIND_IN_SET("31",replace(usersid,"|",","))