我有一张桌子“歌曲”和专栏“歌手”。我想通过歌手的名字在桌子上搜索“歌曲”。我的问题是,如果歌手的名字是“Gallagher”,那么查询不仅给歌手“Gallagher”,还给我带有“Gallagher”的所有其他名字,例如“Noel Gallagher”“Liam Gallagher”等。 ..
如果搜索字符串为“Gallagher”,如何优化搜索以仅向我提供“Gallagher”?
我的疑问是:
SELECT * FROM songs WHERE singers RLIKE \"" . $searchstring . "\" ORDER BY title
答案 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';