1

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

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

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

问题是,如果访问者搜索“Lal”,那么演员名称为“Mohanlal”和“Lal”的电影都会出现。我只想列出“Lal”电影。我该如何编写查询来做到这一点?

4

5 回答 5

1

尝试以下查询:

SELECT * FROM `imdb` WHERE `actors` RLIKE '[[:<:]]Lal[[:>:]]'

更好,更容易:

SELECT * FROM `imdb` WHERE find_in_set('Lal',actors)
于 2012-11-08T14:17:33.867 回答
0
SELECT * FROM imdb WHERE actor LIKE '%,lal' or actor LIKE 'lal'
于 2012-11-08T13:51:36.097 回答
0

像这样进行查询:

SELECT * FROM imdb WHERE actor LIKE 'actorname'

并在您的输入字段旁边放置一个文本,让他们使用通配符进行搜索。然后,如果他们想搜索“Lal”,则只会找到“Lal”,如果他们想搜索以“lal”(%lal)结尾的所有内容,他们将找到 Mohanlal 和 Lal。

于 2012-11-08T13:44:43.600 回答
0

您应该为演员创建单独的表格,无论如何我们将尝试找到解决方案。

  SELECT * FROM imdb WHERE actors LIKE 'Lal,%' OR actors LIKE '%,Lal%' OR actors = 'Lal'
于 2012-11-08T13:48:28.260 回答
0

我认为这是你需要的:

SELECT whatever
FROM whereever AS t
WHERE t.actors = SOUNDEX('test')
于 2015-10-14T07:40:50.153 回答