开发者

MYSQL: Like Method, Similar Words - But Don't Show the Searched Word

actually i use this method to show similar words for a search request..

$query = "SELECT * FROM searches WHERE Query LIKE '%$search%' ORDER BY Query"; 

if someone searches for "nelly" it looks up in the database for similar words

"nelly furtado, nelly ft. kelly"...

but i dont want to show up the searched word..

example: you've searched for nelly - try this too: nelly, nelly furtado, nelly ft.,

the bold word should not showed up again, because it's the searched word.. is there maybe a 开发者_如何学运维method with MATCH AGAINST? thank you!


Couldn't you just do something like ...WHERE Query LIKE "%$search%' AND Query <> '$search'...?

Case-insensitive: Query LIKE "%$search%' AND STRCMP(Query, '$search') == 0


Leniel - It might be due to capitalization that search term is still showing up, i.e. *LIKE "nelly"* will find "nelly", "Nelly", "NeLlY", etc. whereas * <> "nelly"* will only exclude "nelly" (lowercase) from the results.

Perhaps NOT LIKE would yield better results, or str_to_lower your input before it leaves PHP and compare it to LOWER(column_name) to match all cases.

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜