首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >就像MySQL中的区分大小写

就像MySQL中的区分大小写
EN

Stack Overflow用户
提问于 2011-11-11 01:07:37
回答 8查看 70.3K关注 0票数 36

我有一个MySQL查询:

代码语言:javascript
运行
复制
SELECT concat_ws(title,description) as concatenated HAVING concatenated LIKE '%SearchTerm%';

我的表是用MyISAM编码的utf8_general_ci。

搜索似乎是区分大小写的。

我想不出怎么修好它。哪里出了问题和/或我该如何修复它?

EN

回答 8

Stack Overflow用户

回答已采纳

发布于 2011-11-11 01:09:51

试试这个:

代码语言:javascript
运行
复制
SELECT LOWER(CONCAT_WS(title,description)) AS concatenated 
WHERE concatenated LIKE '%searchterm%'

或者(让你看看有什么不同)

代码语言:javascript
运行
复制
SELECT LOWER(CONCAT_WS(title,description)) AS concatenated 
WHERE concatenated LIKE LOWER('%SearchTerm%')
票数 20
EN

Stack Overflow用户

发布于 2012-06-05 05:43:46

在性能方面更好的解决方案:

代码语言:javascript
运行
复制
SELECT .... FROM .... WHERE `concatenated` LIKE BINARY '%SearchTerm%';

当任何操作数是二进制字符串时,字符串比较区分大小写。

另一种选择是使用COLLATE

代码语言:javascript
运行
复制
SELECT ....
FROM ....
WHERE `concatenated` like '%SearchTerm%' COLLATE utf8_bin;
票数 50
EN

Stack Overflow用户

发布于 2013-09-09 00:54:52

在此方法中,您不必选择搜索字段:

代码语言:javascript
运行
复制
SELECT table.id 
FROM table
WHERE LOWER(table.aTextField) LIKE LOWER('%SearchAnything%')
票数 6
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/8083455

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档