我的网站就像imdb.com - 它存储电影细节和演员的名字。在我的actor字段中,我正在存储演员名称,如“name1,name2,name3,name4”。
我的网站可以选择按演员姓名搜索电影。我的代码如下:
SELECT * FROM imdb WHERE actors LIKE '%%actorname%%'
问题在于,如果访问者搜索“Lal”,则会出现名为“Mohanlal”和“Lal”的演员电影。我只想列出'Lal'电影。如何编写查询来执行此操作?
答案 0 :(得分:1)
尝试以下查询:
SELECT * FROM `imdb` WHERE `actors` RLIKE '[[:<:]]Lal[[:>:]]'
更好,更容易:
SELECT * FROM `imdb` WHERE find_in_set('Lal',actors)
答案 1 :(得分:0)
进行如下查询:
SELECT * FROM imdb WHERE actor LIKE 'actorname'
并在输入字段旁边放置一个文本,让他们使用通配符进行搜索。然后,如果他们想要搜索'Lal',那么只会找到'Lal',如果他们想搜索以'lal'(%lal)结尾的所有内容,他们会找到Mohanlal和Lal。
答案 2 :(得分:0)
你应该为演员创建分隔表,无论如何我们会尝试找到我们剩下的解决方案。
SELECT * FROM imdb WHERE actors LIKE 'Lal,%' OR actors LIKE '%,Lal%' OR actors = 'Lal'
答案 3 :(得分:0)
SELECT * FROM imdb WHERE actor LIKE '%,lal' or actor LIKE 'lal'
答案 4 :(得分:0)
我认为这就是你所需要的:
SELECT whatever
FROM whereever AS t
WHERE t.actors = SOUNDEX('test')