我想搜索一个名字“Hamed Haddadi”。'Hamed' 是名字,'Haddadi' 是用户的姓氏。当我在名字和姓氏列中单独搜索时,它会显示一条记录。
我的查询是:
SELECT *
FROM nbaplayermaster
WHERE firstname LIKE "%Hamed%" OR
lastname LIKE "%Haddadi%";
Run Code Online (Sandbox Code Playgroud)
但是每当我在两列中搜索他的名字时,它都会在 MySQL 中显示一个空的结果集。
我的查询是:
SELECT *
FROM nbaplayermaster
WHERE firstname LIKE "%Hamed Haddadi%" OR
lastname LIKE "%Hamed Haddadi%";
Run Code Online (Sandbox Code Playgroud)
我想在两列中搜索他的全名。
我怀疑 Hamed 是名字,Haddadi 是姓氏,您可以通过 3 种方式做到这一点;
解决方案1:
按姓名和姓氏拆分查询:
SELECT *
FROM nbaplayermaster
WHERE firstname LIKE "%Hamed%" OR
lastname LIKE "%Hamed%";
Run Code Online (Sandbox Code Playgroud)
解决方案2:
在名称(空格)之间使用通配符 %
SELECT *
FROM nbaplayermaster
WHERE firstname LIKE "%Hamed%Haddadi%" OR
lastname LIKE "%Hamed%Haddadi%";
Run Code Online (Sandbox Code Playgroud)
解决方案3:(推荐)
在这 2 列上添加全文索引:
ALTER TABLE nbaplayermaster ADD FULLTEXT KEY `full_name` (`firstname`,`lastname`);
Run Code Online (Sandbox Code Playgroud)
然后使用全文索引搜索
SELECT * FROM nbaplayermaster WHERE MATCH(firstname,lastname) AGAINST ('Hamed Haddadi');
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
23977 次 |
| 最近记录: |