MYSQL查询搜索精炼问题

时间:2017-11-07 00:33:48

标签: php mysql

我有一张桌子“歌曲”和专栏“歌手”。我想通过歌手的名字在桌子上搜索“歌曲”。我的问题是,如果歌手的名字是“Gallagher”,那么查询不仅给歌手“Gallagher”,还给我带有“Gallagher”的所有其他名字,例如“Noel Gallagher”“Liam Gallagher”等。 ..

如果搜索字符串为“G​​allagher”,如何优化搜索以仅向我提供“Gallagher”?

我的疑问是:

SELECT * FROM songs WHERE singers RLIKE \"" . $searchstring . "\" ORDER BY title

3 个答案:

答案 0 :(得分:1)

编辑:搜索stackoverflow之后,这里有一个您可能正在寻找的解决方案:MySQL - How to search for exact word match using LIKE?

你究竟在搜索什么?

SELECT * FROM songs WHERE singers RLIKE '^Gallagher';

答案 1 :(得分:0)

如果您只想显示'Gallagher,请使用SUBSTRING_INDEX

SELECT DISTINCT SUBSTRING_INDEX(singers, " ", -1) FROM songs WHERE singers LIKE '%{$search_string}%' ORDER BY title;

答案 2 :(得分:0)

如果您想根据姓氏(姓氏)搜索单个姓名,那么您需要在下面写下查询

SELECT * FROM songs WHERE singers LIKE '%Gallagher';