mysql 定位字符串的位置

mysql中没有charinde,使用find_in_set又只能定位逗号隔开的字符串位置,如果想查指定字符串中是否存在一个指定的字符,除了用like+count(1)以外,还可以考虑用

locate,position,instr函数,具体使用方法:

MySQL使用内置函数来进行模糊搜索(locate()等)

常用的一共有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) 

转自:http://www.cnblogs.com/tommy-huang/p/4483583.html

时间: 2024-09-30 00:26:44

mysql 定位字符串的位置的相关文章

mysql查找字符串出现位置

MySQL中的LOCATE和POSITION函数使用方法 FIND_IN_SET(str,strlist) 假如字符串str 在由N 子链组成的字符串列表strlist 中,则返回值的范围在 1 到 N 之间.一个字符串列表就是一个由一些被‘,’符号分开的自链组成的字符串.如果第一个参数是一个常数字符串,而第二个是type SET列,则   FIND_IN_SET() 函数被优化,使用比特计算.如果str不在strlist 或strlist 为空字符串,则返回值为 0 .如任意一个参数为NULL

Mysql处理字符串函数(转)

http://www.jb51.net/article/27458.htm 感觉上MySQL的字符串函数截取字符,比用程序截取(如PHP或JAVA)来得强大,所以在这里做一个记录,希望对大家有用. 函数: 1.从左开始截取字符串 left(str, length) 说明:left(被截取字段,截取长度) 例:select left(content,200) as abstract from my_content_t 2.从右开始截取字符串 right(str, length) 说明:right(

<经验杂谈>Mysql中字符串处理的几种处理方法concat、concat_ws、group_concat

Mysql中字符串处理的几种处理方法concat.concat_ws.group_concat以下详情: MySQL中concat函数使用方法:CONCAT(str1,str2,-) 返回结果为连接参数产生的字符串.如有任何一个参数为NULL ,则返回值为 NULL. 注意:如果所有参数均为非二进制字符串,则结果为非二进制字符串. 如果自变量中含有任一二进制字符串,则结果为一个二进制字符串.一个数字参数被转化为与之相等的二进制字符串格式:若要避免这种情况,可使用显式类型 cast, 例如:SEL

mysql之字符串操作

写在前面 上篇文章学习了mysql常用的日期操作的函数,这篇文章将学习mysql的字符串操作的函数. 系列文章 mysql之创建数据库,创建数据表 mysql之select,insert,delete,update mysql之group by,order by mysql之count,max,min,sum,avg,celing,floor mysql之日期函数 mysql实战 1.ASCII(str) select ascii('a'); select ascii('ab'); select

mysql的字符串处理函数

一.简明总结ASCII(char) 返回字符的ASCII码值BIT_LENGTH(str) 返回字符串的比特长度CONCAT(s1,s2…,sn) 将s1,s2…,sn连接成字符串CONCAT_WS(sep,s1,s2…,sn) 将s1,s2…,sn连接成字符串,并用sep字符间隔INSERT(str,x,y,instr) 将字符串str从第x位置开始,y个字符长的子串替换为字符串instr,返回结果FIND_IN_SET(str,list) 分析逗号分隔的list列表,如果发现str,返回st

MySQL的字符串连接函数CONCAT, CONCAT_WS,GROUP_CONTACT

本文转载自de.cel<MySQL的字符串连接函数CONCAT, CONCAT_WS,GROUP_CONCAT> 在搜索Mysql中怎么实现把一列的多行数据合并成一行时,找到了group_contact函数,它比SqlServer中的select @[email protected]+列名 from 表名,的形式方便了许多,在此把字符串连接函数小小的总结一下. CONCAT(str1, str2,...): 返回结果为连接参数产生的字符串.如有任何一个参数为NULL ,则返回值为 NULL.

mysql的字符串函数

From: http://www.cnblogs.com/xiaochaohuashengmi/archive/2010/12/13/1904330.html 对于针对字符串位置的操作,第一个位置被标记为1. 1.ASCII(str) 返回字符串str的最左面字符的ASCII代码值.如果str是空字符串,返回0.如果str是NULL,返回NULL. mysql> select ASCII('2'); -> 50 mysql> select ASCII(2); -> 50 mysql

mysql常见字符串处理函数结束

1 一.简明总结 2 ASCII(char) 返回字符的ASCII码值 3 BIT_LENGTH(str) 返回字符串的比特长度 4 CONCAT(s1,s2…,sn) 将s1,s2…,sn连接成字符串 5 CONCAT_WS(sep,s1,s2…,sn) 将s1,s2…,sn连接成字符串,并用sep字符间隔 6 INSERT(str,x,y,instr) 将字符串str从第x位置开始,y个字符长的子串替换为字符串instr,返回结果 7 FIND_IN_SET(str,list) 分析逗号分隔

Android应用中使用百度地图API定位自己的位置(二)

官方文档:http://developer.baidu.com/map/sdkandev-6.htm#.E7.AE.80.E4.BB.8B3 百度地图SDK为开发者们提供了如下类型的地图覆盖物: 我的位置图层(MyLocationOverlay):用于显示用户当前位置的图层(支持自定义位置图标): Poi搜索结果图层(PoiOverlay):用于显示兴趣点搜索结果的图层: 路线图层(RouteOverlay):公交.步行和驾车线路图层,将公交.步行和驾车出行方案的路线及关键点显示在地图上(起.终