GaussDB(DWS) 大小写不敏感函数

举报
积少成多 发表于 2022/01/07 14:33:03 2022/01/07
【摘要】 本文旨在介绍DWS中存在的一些大小写不敏感函数,介绍大小写敏感GUC参数设置的使用和对应大小写敏感函数的结果展示。

1. 大小写不敏感函数

  大小写不敏感函数是指入参忽略大小写的函数,此类函数的主要应用场景是字符串的查询。是否大小写敏感会影响字符串查询的结果。
  涉及到字符串查询的函数有locate函数、position函数、strpos函数。locate函数返回字符串中子串第一次出现的位置。函数有两种参数接收方式:
  1.输入被查询子串和查询字符串,不包含查询起始位置,默认从1开始。
  2.输入被查询子串和查询字符串以及查询初始位置。
  若能查询到子串,则返回其第一次出现的位置索引。若子串不在字符串中,返回0。
  position函数和strpos函数与locate函数功能相近,区别在于函数入参和使用形式。
  这些字符串处理函数是兼容MySQL中的字符串处理函数。而MySQL的字符串处理函数在MySQL默认情况下,是大小写不敏感的,也就是说入参忽略大小写情况进行查询,而DWS默认是大小写敏感的。
eg:select locate(‘pos’, ‘postest’), locate(‘Pos’, ‘postest’);
DWS结果:

locate locate
1 0

MySQL结果:

locate locate
1 1

2. 相关GUC参数

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

3. 结果展示

locate:
image.png
strpos:
image.png
position:
image.png
  根据结果可以看出,通过设置GUC参数达到了预期入参字符大小写不敏感的目的。但是目前比较局限,无法通过内核全局设置,使所有入参都能达到大小写不敏感的目的。
想了解GuassDB(DWS)更多信息,欢迎微信搜索“GaussDB DWS”关注微信公众号,和您分享最新最全的PB级数仓黑科技,后台还可获取众多学习资料哦~

【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。