mysql+定位字符的位置_mysql 定位字符串的位置

常用的一共有4个方法,如下:

1. 使用locate()方法

1.1.普通用法:

SELECT `column` from `table` where locate(‘keyword‘, `condition`)>0

类似于 java 的 indexOf();不过 locate() 只要找到返回的结果都大于0(即使是查询的内容就是最开始部分),没有查找到才返回0;

1.2. 指定其实位置:

SELECT LOCATE(‘bar‘, ‘foobarbar‘,5);  --> 7 (从foobarbar的第五个位置开始查找)

2.使用instr()函数 (据说是locate()的别名函数)

SELECT `column` from `table` where instr(`condition`, ‘keyword’ )>0

唯一不同的是 查询内容的位置不同,见SQL语句中过的keyword

3.使用position()方法,(据说也是locate()方法的别名函数,功能一样)

SELECT `column` from `table` where position(‘keyword’ IN `condition`)

不过它不再是通过返回值来判断,而是使用关键字 in

4.使用find_in_set()函数

如: find_in_set(str,strlist),strlist必须要是以逗号分隔的字符串

如果字符串str是在的strlist组成的N子串的字符串列表,返回值的范围为1到N

SQL> SELECT FIND_IN_SET(‘b‘,‘a,b,c,d‘);

+---------------------------------------------------------+

| SELECT FIND_IN_SET(‘b‘,‘a,b,c,d‘) |

+---------------------------------------------------------+

| 2 |

+---------------------------------------------------------+

1 row in set (0.00 sec)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值