LOCATE、POSITION和INSTR函数相似功能实例

使用LOCATE、POSITION和INSTR函数查找字符串中指定子字符串的开始位置。SQL语句如下:

mysql>SELECT LOCATE('369','www.baike369.com') AS col1,

>POSITION('369' IN 'www.baike369.com') AS col2,

>INSTR('www.baike369.com','369') AS col3;

执行结果如下:

从上图中代码执行的结果可以看出,子字符串“369”在字符串“www.baike369.com”中从第10个字母位置开始,因此,这3个函数返回的结果都为5。

Mysql 大家都会用这样的語法:

SELECT `column` FROM `table` where `condition` like `%keyword%’

事实上,可以使用 locate 和 instr 这两个函数来代替

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

或是 locate 的別名 position

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

或是

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

locate、position 和 instr 的差別只是参数的位置不同,同时locate 多一个请始位置的参数外,两者是一样的。

速度上这三个比用 like 稍快了一點。

另付三个函数的说明:

INSTR(str,substr)

返回字符串 str 中子字符串的第一个出现位置。这和LOCATE()的双参数形式相同,只是参数的顺序被颠倒。

mysql> SELECT INSTR(‘foobarbar’, ‘bar’);

-> 4

mysql> SELECT INSTR(‘xbar’, ‘foobar’);

-> 0

这个函数支持多字节字元,并且只有当至少有一个参数是二进制字符串时区分大小写。

LOCATE(substr,str) , LOCATE(substr,str,pos)

第一个语法返回字符串 str中子字符串substr的第一个出现位置。第二个语法返回字符串str中子字符串substr的第一个出现位置, 起始位置在pos。如若substr 不在str中,则返回值为0。

mysql> SELECT LOCATE(‘bar’, ‘foobarbar’);

-> 4

mysql> SELECT LOCATE(‘xbar’, ‘foobar’);

-> 0

mysql> SELECT LOCATE(‘bar’, ‘foobarbar’,5);

-> 7

这个函数支持多字节字元,并且只有当至少有一个参数是二进制字符串时区分大小写。

POSITION(substr IN str)

POSITION(substr IN str)是 LOCATE(substr,str)同义词。

速度上这三个比用 like 稍快了一點。

当 condition 需要作为参数传递时,为了避免因为类型的原因 而查询结果错误的问题(position(‘keyword’ IN $a)  keyword 为int类型时,则查询结果总是为一条) 应使用find_IN_SET代替。find_int_set(列名,$a) ;   当表中无数据或者列为null时,postion会成立 find_IN_SET 比较严格 如果没有数据 则不成立

mysql instr locate_mysql函数之一:INSTR、LOCATE、POSITION VS LIKE相关推荐

  1. mysql locate 和 like_MySQL比like语句更高效的写法locate position instr find_in_set

    LIKE语句 SELECT `column` FROM `table` where `condition` like `%keyword%' 事实上,可以使用 locate(position) 和 i ...

  2. SQL中CharIndex函数、InStr 函数、PatIndex函数、Stuff函数区别与作用

    在c#中可以用字符串的IndexOf方法来判断一个字符串中是否含有指定的字符.而在SQL SERVER中也就相关的函数来实现IndexOf的功能.CharIndex,InStr,PatIndex三个函 ...

  3. ORACLE SUBSTR函数和INSTR函数的结合

    ORACLE SUBSTR函数和INSTR函数的结合 编写脚本时,经常会用到SUBSTR函数和INSTR函数结合使用,往往会出现"意想不到"的效果,这里不再介绍SUBSTR函数和I ...

  4. mysql的字符串函数大全_MySQL的字符串函数大全

    ASCII(str) 返回字符串str的最左面字符的ASCII代码值.如果str是空字符串,返回0.如果str是NULL,返回NULL. mysql> select ASCII('2'); -& ...

  5. mysql的字符串函数

    对于针对字符串位置的操作,第一个位置被标记为1. 1.ASCII(str) 返回字符串str的最左面字符的ASCII代码值.如果str是空字符串,返回0.如果str是NULL,返回NULL. mysq ...

  6. MySQL中字符串函数详细介绍

    MySQL字符串函数对于针对字符串位置的操作,第一个位置被标记为1. ASCII(str)返回字符串str的 最左面字符的ASCII代码值.如果str是空字符串, 返回0.如果str是NULL,返回N ...

  7. MySQL优化之——函数

    转载请注明出处:http://blog.csdn.net/l1028386804/article/details/46561659 数学函数 1.求余函数MOD(X,Y) MOD(X,Y)返回x被y除 ...

  8. MySQL字符串处理函数的用法及使用举例

    MySQL字符串处理函数的用法及使用举例 MySQL提供了处理字符串的相关函数.现对这些函数的功能及用法进行介绍并举例. 创建数据表emp并输入数据: create table customer(c_ ...

  9. mysql部分常用函数DATE_FORMAT(a.Created_time,'%Y-%m-%d%H

    mysql部分常用函数 DATE_FORMAT(a.Created_time,'%Y-%m-%d %H:%i:%S') as c_time 有人告诉说1代表的是索引字段,和数组一样,1的话就是第二个字 ...

最新文章

  1. 基于开源CA系统ejbca community 6.3.1.1构建私有CA管理数字证书
  2. 在蓄电池管理系统中计算机应用,汽车电器与电子技术.docx
  3. oracle 查重复_日常答疑|MySQL删除重复数据踩过得坑
  4. 如何查看SharePoint未知错误
  5. C语言 ungetc将变量存放的字符返回给stdin输入流
  6. python set判断一个键是否存在_python redis 有序集合sorted set检查某个键是否存在
  7. 基于JAVA+SpringBoot+Mybatis+MYSQL的个人理财系统
  8. Erlang与ActionScript3采用JSON格式进行Socket通讯
  9. 在 Linux 上配置一个 syslog 服务器
  10. 题解:子矩阵(NOIP2014普及组T4)
  11. springboot+微信小程序点餐系统的设计与实现毕业设计源码221541
  12. 指定vtp为服务器命令,VTP与单臂路由
  13. 利用Openlayers4实现地图遮罩效果(三)
  14. while 循环进入死循环?
  15. 单片机cant通讯 c语言,基于C8051F040单片机的CAN总线通信
  16. 黑苹果 双系统 macos 与Windows蓝牙设备共享
  17. C# 创建MDI窗体
  18. (转)Android WebRTC简介
  19. 为何moov头在尾部的mp4可以快速播放、拖动
  20. python解析pcap包,python-用scapy读取PCAP文件

热门文章

  1. 《银翼杀手》画面布局赏析
  2. buuctf blacklist
  3. php templete什么意思,PHP设计模式之模板方法模式定义与用法详解
  4. ss命令Linux网络状态工具
  5. (算法)求数组中数字组合(可多值组合)相加最接近目标数的组合(可能多个)
  6. 齐博x2如何新增自定义字段
  7. jk触发器上升沿怎么看_jk触发器波形图_jk触发器波形图怎么画
  8. ncut算法分割图像的matlab,Ncut_9 归一化切割和图像分割算法及其论文, 不仅度量了不同分组之间总体不相似性, matlab 269万源代码下载- www.pudn.com...
  9. Android手机通知栏工具,安卓通知栏美化工具(Flat Style Colored Bars)
  10. 浙大愤青郑强教授的演讲(大学生都来看看吧)