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