我有一个MySQL查询:
SELECT concat_ws(title,description) as concatenated HAVING concatenated LIKE '%SearchTerm%';我的表是用MyISAM编码的utf8_general_ci。
搜索似乎是区分大小写的。
我想不出怎么修好它。哪里出了问题和/或我该如何修复它?
发布于 2011-11-11 01:09:51
试试这个:
SELECT LOWER(CONCAT_WS(title,description)) AS concatenated
WHERE concatenated LIKE '%searchterm%'或者(让你看看有什么不同)
SELECT LOWER(CONCAT_WS(title,description)) AS concatenated
WHERE concatenated LIKE LOWER('%SearchTerm%')发布于 2012-06-05 05:43:46
在性能方面更好的解决方案:
SELECT .... FROM .... WHERE `concatenated` LIKE BINARY '%SearchTerm%';当任何操作数是二进制字符串时,字符串比较区分大小写。
另一种选择是使用COLLATE,
SELECT ....
FROM ....
WHERE `concatenated` like '%SearchTerm%' COLLATE utf8_bin;发布于 2013-09-09 00:54:52
在此方法中,您不必选择搜索字段:
SELECT table.id
FROM table
WHERE LOWER(table.aTextField) LIKE LOWER('%SearchAnything%')https://stackoverflow.com/questions/8083455
复制相似问题