sql查询喜欢一些文本

时间:2012-11-08 13:39:21

标签: php mysql

我的网站就像imdb.com - 它存储电影细节和演员的名字。在我的actor字段中,我正在存储演员名称,如“name1,name2,name3,name4”。

我的网站可以选择按演员姓名搜索电影。我的代码如下:

SELECT * FROM imdb WHERE actors LIKE '%%actorname%%'

问题在于,如果访问者搜索“Lal”,则会出现名为“Mohanlal”和“Lal”的演员电影。我只想列出'Lal'电影。如何编写查询来执行此操作?

5 个答案:

答案 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')