MySQL query BOOLEAN MODE Case Sensitivity
My search is case sensitive, but I want it to be case insensitive. In MySQL I have my database and table set to utf8_general_ci
. The search is still case sensitive. I have been doing some research and it seems the reason behind this is BOOLEAN MODE
in my query. Is there a way to make it case insensitive? so no matter how I type any word with any sensitivity it will always bring it up in the search result?
SELECT
s_cost_sheet.partnumber,
s_cost_sheet.description,
s_cost_sheet.price,
s_cost_sheet.notes
FROM s_cost_sheet
WHERE MATCH ( partnumber, description, price, notes )
AGAINST('%".$search."%' IN BOOLEAN MODE) ORDER BY partnumber, description, p开发者_如何学Gorice, notes ASC";
I have tested the search in phpMyAdmin and it works no matter how a type the word plate, it can be Plate, PLATE, plaTE. It all works fine, so it must be something within this that is causing the issue.
If one of the columns is of type int or numeric then the search becomes case sensitive. Also there's no need to use % in the searched string
TRY changing your table and column to utf8_general_ci
and you don't have to use %
wildcard with FULL TEXT Search
RECOMMENDATIONS
Also avoid using a lot of columns with ORDER BY
clause if you need quicker results.
精彩评论