Pmc*_*ery 33 mysql case-sensitive sql-like
我有一个MySQL查询:
SELECT concat_ws(title,description) as concatenated HAVING concatenated LIKE '%SearchTerm%';
Run Code Online (Sandbox Code Playgroud)
我的表格使用MyISAM编码为utf8_general_ci.
搜索似乎区分大小写.
我无法弄清楚如何解决它.出了什么问题和/或我该如何解决?
kol*_*pto 42
在性能方面更好的解决方案:
SELECT .... FROM .... WHERE `concatenated` LIKE BINARY '%SearchTerm%';
Run Code Online (Sandbox Code Playgroud)
当任何操作数是二进制字符串时,字符串比较区分大小写.
另一种选择是使用COLLATE,
SELECT ....
FROM ....
WHERE `concatenated` like '%SearchTerm%' COLLATE utf8_bin;
Run Code Online (Sandbox Code Playgroud)
Mar*_*rco 18
试试这个:
SELECT LOWER(CONCAT_WS(title,description)) AS concatenated
WHERE concatenated LIKE '%searchterm%'
Run Code Online (Sandbox Code Playgroud)
或(让你看到差异)
SELECT LOWER(CONCAT_WS(title,description)) AS concatenated
WHERE concatenated LIKE LOWER('%SearchTerm%')
Run Code Online (Sandbox Code Playgroud)
在此方法中,您不必选择搜索的字段:
SELECT table.id
FROM table
WHERE LOWER(table.aTextField) LIKE LOWER('%SearchAnything%')
Run Code Online (Sandbox Code Playgroud)