2011-10-03 87 views
5

我的搜索區分大小寫,但我希望它不區分大小寫。在MySQL中我有我的數據庫和表設置爲utf8_general_ci。搜索仍然區分大小寫。我一直在做一些研究,看來這背後的原因是BOOLEAN MODE在我的查詢中。有沒有辦法讓它不區分大小寫?所以無論我如何輸入任何具有敏感度的單詞,它總是會將其顯示在搜索結果中?mysql查詢BOOLEAN MODE區分大小寫敏感

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, price, notes ASC"; 

我已經測試在phpMyAdmin搜索和它的作品無論怎樣一種類型的字牌,也可以是平板,中厚板,板。它一切正常,所以它一定是導致問題的東西。

+0

那些列呢?他們是否也在utf8_general_ci? – Karolis

+0

是的,他們也設置爲utf8_general_ci – asar

+0

我認爲沒有雙引號這應該很好。爲什麼你使用百分號? – Karolis

回答

1

如果其中一列的類型爲int或數字,則搜索區分大小寫。也不需要在搜索字符串中使用%

+0

是的,這是正確的。我將它們全部更改爲VARCHAR,而不是使用2列作爲小數。謝謝! – asar

0

試着改變你的表和列到utf8_general_ci,你不必使用通配符%FULL TEXT Search

建議 也避免使用大量的列與ORDER BY條款,如果你需要更快的結果。

+0

我有表和列設置爲utf8_general_ci,它仍然以這種方式行事。 – asar