【发布时间】:2011-11-29 23:17:56
【问题描述】:
我的搜索区分大小写,但我希望它不区分大小写。在 MySQL 中,我将数据库和表设置为 utf8_general_ci。搜索仍然区分大小写。我一直在做一些研究,这背后的原因似乎是我的查询中的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 中测试了搜索,无论输入什么单词 plate,它都可以正常工作,它可以是 Plate、PLATE、plaTE。一切正常,所以一定是其中的某些东西导致了问题。
【问题讨论】:
-
列呢?它们也在 utf8_general_ci 中吗?
-
是的,它们也设置为 utf8_general_ci
-
我认为没有双引号应该可以正常工作。为什么要使用百分号?
-
带有“.search.”它仍然区分大小写。我提取结果,但前提是我使用精确的灵敏度。例如。我正在搜索盘子,但结果不会显示,因为它是作为盘子输入的。所以我必须搜索 Plate 才能显示出来。我希望它无论如何都能找到任何单词(PLATE、plate、Plate、PLate 等)。我如何拥有它,它应该可以工作,所以我不明白为什么它不工作的问题
标签: mysql search case-insensitive