写点什么

数仓如何设置大小写不敏感函数

  • 2022 年 3 月 25 日
  • 本文字数:716 字

    阅读完需:约 2 分钟

本文分享自华为云社区《GaussDB(DWS) 大小写不敏感函数》,作者: 积少成多 。


大小写不敏感函数是指入参忽略大小写的函数,此类函数的主要应用场景是字符串的查询。是否大小写敏感会影响字符串查询的结果。

  

涉及到字符串查询的函数有 locate 函数、position 函数、strpos 函数。locate 函数返回字符串中子串第一次出现的位置。函数有两种参数接收方式:  


1.输入被查询子串和查询字符串,不包含查询起始位置,默认从 1 开始。  

2.输入被查询子串和查询字符串以及查询初始位置。  


若能查询到子串,则返回其第一次出现的位置索引。若子串不在字符串中,返回 0。  


position 函数和 strpos 函数与 locate 函数功能相近,区别在于函数入参和使用形式。  


这些字符串处理函数是兼容 MySQL 中的字符串处理函数。而 MySQL 的字符串处理函数在 MySQL 默认情况下,是大小写不敏感的,也就是说入参忽略大小写情况进行查询,而 DWS 默认是大小写敏感的。


eg:select locate(‘pos’, ‘postest’), locate(‘Pos’, ‘postest’);


DWS 结果:

MySQL 结果:

2. 相关 GUC 参数

在 MySQL 中是通过底层设计实现入参大小写不敏感的,但在 DWS 的 MySQL 兼容性模式下,我们是通过设置 GUC 参数:SET behavior_compat_options=‘case_insensitive’,可使这些字符串处理函数入参大小写不敏感,兼容 MySQL 场景。

3. 结果展示

locate:

strpos:

position:

根据结果可以看出,通过设置 GUC 参数达到了预期入参字符大小写不敏感的目的。但是目前比较局限,无法通过内核全局设置,使所有入参都能达到大小写不敏感的目的。


想了解 GuassDB(DWS)更多信息,欢迎微信搜索“GaussDB DWS”关注微信公众号,和您分享最新最全的 PB 级数仓黑科技,后台还可获取众多学习资料哦~


点击关注,第一时间了解华为云新鲜技术~​

发布于: 刚刚阅读数: 2
用户头像

提供全面深入的云计算技术干货 2020.07.14 加入

华为云开发者社区,提供全面深入的云计算前景分析、丰富的技术干货、程序样例,分享华为云前沿资讯动态,方便开发者快速成长与发展,欢迎提问、互动,多方位了解云计算! 传送门:https://bbs.huaweicloud.com/

评论

发布
暂无评论
数仓如何设置大小写不敏感函数_MySQL_华为云开发者社区_InfoQ写作平台