我正在运行大型搜索查询,例如:
WHERE
'gender' LIKE '%a%'
OR fname LIKE '%a%'
OR mname LIKE '%a%'
OR lname LIKE '%a%'
OR address LIKE '%a%'
OR card LIKE '%a%'
OR email LIKE '%a%'
OR fname LIKE '%ryan%'
OR mname LIKE '%ryan%'
OR lname LIKE '%ryan%'
OR address LIKE '%ryan%'
OR card LIKE '%ryan%'
OR email LIKE '%ryan%'`
它会根据您在搜索框中的位置搜索所有这些内容。
mysql会给我以下行:
http://i.stack.imgur.com/kZSaS.png
Ryan Anthony Okeefe
John Albert Doe
Beau Jacob Diddly
Anthony Quinn Jims
Brooke Wame Gagne
继承我的问题。我想得到最准确的结果因为这个。在这种情况下,它将是第一个结果,因为第一个名称是Ryan,它包含第一个和中间名称中的字母a。有人可以帮我吗?
答案 0 :(得分:2)
它不会太高效,但您可以尝试:
ORDER BY
(gender LIKE '%a%') +
(fname LIKE '%a%') +
(mname LIKE '%a%') +
(lname LIKE '%a%') +
(address LIKE '%a%') +
(card LIKE '%a%') +
(email LIKE '%a%') +
(fname LIKE '%ryan%') +
(mname LIKE '%ryan%') +
(lname LIKE '%ryan%') +
(address LIKE '%ryan%') +
(card LIKE '%ryan%') +
(email LIKE '%ryan%'`) DESC
LIMIT 1
但是,我会调查Full Text Search Functions。