sql字符串的操作

1. 字符串模糊匹配

  1. like 关键字 field like ‘%str%’
  2. like关键字的通配符
  • %:表示任意 0 个或多个字符。可匹配任意类型和长度的字符,有些情况下若是中文,请使用两个百分号(%%)表示。
  • _:表示任意单个字符。匹配单个任意字符,它常用来限制表达式的字符长度语句。
  • []:表示括号内所列字符中的一个(类似正则表达式)。指定一个字符、字符串或范围,要求所匹配对象为它们中的任一个。
  • [^] :表示不在括号所列之内的单个字符。其取值和 [] 相同,但它要求所匹配对象为指定字符以外的任一个字符。
  • 查询内容包含通配符时,由于通配符的缘故,导致我们查询特殊字符 “%”、“_”、“[” 的语句无法正常实现,而把特殊字符用 “[ ]” 括起便可正常查询
  1. INSTR(str,substr)
    返回在字符串str中子串substr第一个出现的位置,下标从1开始,没有返回0,hql中可以使用
SELECT INSTR('foobarbar', 'bar');	 -> 4
SELECT INSTR('xbar', 'foobar');		-> 0
  1. LOCATE(substr,str) ,LOCATE(substr,str,pos)
    双参数形式和INSTR功能相同,第三个参数代表开始查找位置,下标从1开始,不存在返回0,hql中可以使用
SELECT LOCATE('bar', 'foobarbar');			  -> 4
SELECT LOCATE('xbar', 'foobar');			  -> 0
SELECT LOCATE('bar', 'foobarbar',5);		   -> 7       
  1. POSITION(substr ,str)
    返回子串 substr 在字符串 str 中第一次出现的位置。如果子串 substr 在 str 中不存在,返回值为 0,hql中不可以使用
SELECT POSITION('bar', ‘foobarbar'); 						-> 4 
SELECT POSITION('xbar', ‘foobar');     					-> 40
  1. find_in_set(str1,str2)
    返回str2中str1所在的位置索引,str2必须以","分割开, 如有两行数据
namelimits
小明1,2,12
小红11, 22, 32

使用 like ‘%2%’,会查询出两条数据,find_in_set(‘2’, limits)>0 会查到对应的。

  1. contains('targetStr','serachStr')
    用法请参考地址:http://www.php.cn/mysql-tutorials-73769.html
    全文本检索:https://blog.csdn.net/wangjian530/article/details/80554785
    在mysql中,对普通的字符串列无法使用contains方法。在这里插入图片描述
    spatial data : 空间数据类型
    参考文章地址:https://www.jianshu.com/p/d65a455fa3d1
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
SQL,可以使用多种方法进行字符串替换操作。其一种常用的方法是使用REPLACE函数。REPLACE函数可以将字符串的指定内容替换为其他内容。语法如下: REPLACE(string, search_string, replacement_string) 其,string是需要进行替换操作字符串;search_string是需要被替换的内容;replacement_string是替换后的内容。 另外,在某些情况下,需要特殊字符进行转义以正确表示字符串的引号。比如,当字符串包含单引号时,可以使用两个单引号来表示一个单引号。例如: SELECT 'zyd''zhaoyd' FROM dual; 这样,字符串的两个单引号会被解析为一个单引号。 此外,还可以使用q-quote特性进行字符串的拼接和替换操作。q-quote特性允许在字符串前后使用界定符来表示字符串,其界定符可以是除TAB、空格、回车外的任何字符。例如: SELECT q'[zyd'z'h''ao'yd]' FROM dual; 这样,使用q-quote界定符的字符串不需要对特殊字符进行转义,可以直接表示包含引号的字符串。 综上所述,SQL字符串替换操作可以使用REPLACE函数或者使用q-quote特性来进行。具体使用哪种方法取决于具体的需求和字符串的内容。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* *3* [【SQL开发实战技巧】系列(十):从拆分字符串、替换字符串以及统计字符串出现次数说起](https://blog.csdn.net/qq_28356739/article/details/128962364)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 100%"] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值