MYSQL一些字符串的处理,如拼接,截取等,便于用在同一字段中多个值的处理
2013-01-10 16:19
477 查看
-- 返回time有多少秒 不要忘记单引号'' SELECT TIME_TO_SEC('22:23:00') -- 返回一个Unix时间戳(从’1970-01-01 00:00:00′GMT开始的秒数,date默认值为当前时间) select UNIX_TIMESTAMP(); -> 882226357 -- 1357792552 select UNIX_TIMESTAMP('1997-10-04 22:23:00'); -- 875974980 -- FROM_UNIXTIME(unix_timestamp) -- 以’YYYY-MM-DD HH:MM:SS’或YYYYMMDDHHMMSS格式返回时间戳的值(根据返回值所处上下文是字符串或数字) select FROM_UNIXTIME(875996580); -- 1997-10-05 04:23:00
-------------------各种mysql字符串截取与拼接(便于一个字段中多个值以符号隔开的取值)--- SUBSTRING(str,pos); SELECT SUBSTRING(SUBSTRING_INDEX('BGP-Beijing-59.151.105.130-AD_read-YeZongKun','-',3), (LENGTH(SUBSTRING_INDEX('BGP-Beijing-59.151.105.130-AD_read-YeZongKun','-',2))+2)); SUBSTRING(str,pos,len); SUBSTRING(str FROM pos FOR len); SUBSTRING(str,pos); SUBSTRING(str FROM pos); -- ratically SELECT SUBSTRING('Quadratically',5); -- index 第四个字符截取tbarbar SELECT SUBSTRING('footbarbar' FROM 4); -- 从下标5处截取6个长度的字符串 SELECT SUBSTRING('Quadratically',5,6); -- 倒数截取3个字符 SELECT SUBSTRING('Sakila',-3); SELECT SUBSTRING('Sakila',-1); -- aki 倒数截取5个字符中的前3个 SELECT SUBSTRING('Sakila',-5,3); -- ki SELECT SUBSTRING('Sakila' FROM -4 FOR 2);
subString_index与subString,concat结合使用
-- 返回字符串 str 中在第 count 个出现的分隔符 delim 之前的子串 SUBSTRING_INDEX(str,delim,count); -- www.mysql 正数,返回从最后的(从左边开始计数)分隔符到左边所有字符 SELECT SUBSTRING_INDEX('www.mysql.com.cn','.',2); -- mysql.com 负数,返回从最后的(从右边开始计数)分隔符到右边所有字符 SELECT SUBSTRING_INDEX('www.mysql.com','.',-2); -- 字符串替换 -- replace(field,str,str1)将表里面的 field字段的str替换为str1 UPDATE table SET name=REPLACE(name, 'abc', '123'); -- 字符串拼接CONCAT(str1,str2,...) UPDATE TABLE SET name=CONCAT(name,'-old'); -- concat 与 SUBSTRING_INDEX(str,delim,count)共同使用拼接字符串 -- update tb_user set name = concat(SUBSTRING_INDEX(name,'-',2),'-','1234') where uid = 271338 ; -- ELT(N,str1,str2,str3,…)返回第N个字符串(N小于1或大于参数个数返回NULL) SELECT ELT(2,1035089,319,6286,1997,1899); -- 返回319 -- 查询表的结构 desc user_info -- case when then select date,min(case when type='a' then value end),min(case when type='b' then value end) from tb group by date
eg:
SELECT SUBSTRING(SUBSTRING_INDEX('BGP-Beijing-59.151.105.130-AD_read-YeZongKun','-',3),
(LENGTH(SUBSTRING_INDEX('BGP-Beijing-59.151.105.130-AD_read-YeZongKun','-',2))+2));
-- INSTR(str,substr) 返回字符串substr在字符串str第一次出现的位置(str不包含substr时返回0) select INSTR('foobarbar', 'bar'); -- 4 -- 返回删除了左空格的字符串str mysql> select LTRIM(‟ barbar‟); -> „barbar‟ SELECT LTRIM(str) -- REVERSE(str) 颠倒字符串str的字符顺序并返回 mysql> select REVERSE(‟abc‟); -> „cba‟ SELECT REVERSE(str) -- INSERT(str,pos,len,newstr) 把字符串str由位置pos起len个字符长的子串替换为字符串newstr并返回 select INSERT('Quadratic', 3, 4, 'What'); -- QuWhattic
使用:rankingListInfo(500,300,200,123,409,) SELECT INSERT((SELECT rankingListInfo FROM user_info WHERE uid = 1),17,7,(SELECT SUBSTRING_INDEX(rankingListInfo,',',2) FROM user_info WHERE uid =1)) SELECT RIGHT((SELECT INSERT((SELECT rankingListInfo FROM user_info WHERE uid = 1),17,7,(SELECT SUBSTRING_INDEX(rankingListInfo,',',2) FROM user_info WHERE uid =1)) ),13) -----PHP中分别读取--- list($one,$two,$three,$four,$five) = explode('-',$rankingListInfo); 这样就把字符串分割为5份,分别赋值给one,two,three...
-- 给变量赋值----进而进行其他赋值操作同一张表中即查询又update----------------------
DECLARE @list VARCHAR; SET @list = (SELECT SUBSTRING_INDEX((SELECT rankingListInfo FROM user_info WHERE uid = 1),',',-4)); SELECT @list; UPDATE user_info set rankingListInfo = @list WHERE uid =1; SELECT rankingListInfo from user_info WHERE uid= 1; -- 拼接字符串-------------------- UPDATE user_info SET rankingListInfo = CONCAT(rankingListInfo,'500,500,') WHERE uid =1;
相关文章推荐
- 处理字符串的一些js/jq方法(去除HTML,去除空格,计算真实长度,截取中英文字符)
- js中字符串处理常用的方法(字符分割、字符拼接、截取字符串、是否包含一个字符串)
- mysql 截取字符串 去重 拼接
- mysql中如何用GROUP_CONCAT group by将字符串字段拼接起来
- 将一些文档(.zip,.txt,.pdf)进行流处理,存储到mysql中blob字段中
- Mysql字符串字段判断是否包含某个拼接字符串的2种方法
- mysql字符串字段按照逗号截取的存储过程
- mysql GROUP_CONCAT 可以将分组的字段进行拼接处理.
- mysql 字符串处理的一些常见函数
- mysql存储过程中截取拼接的字符串
- mysql replace substring 字符串截取处理
- 批处理关于截取变量中字符串(字段)问题的详细说明(转)
- mysql 字符串操作,mysql 连接字符串,mysql 拼接字符串,mysql 拼接字段
- Mysql 一个字段定义成int类型,查询时传入String,会截取字符串
- 关于mysql根据特定字符来截取字符串的一些方法
- mysql 字符串操作,mysql 连接字符串,mysql 拼接字符串,mysql 拼接字段
- mysql 拼接字符串,和删除某个字段找中的 某个字符串
- MySQL---查找表lamp中,字段gisbaidu,拼接成字符串,并以分号隔开
- 处理字符串的一些js/jq方法(去除HTML,去除空格,计算真实长度,截取中英文字符)
- 批处理关于截取变量中字符串(字段)问题的详细说明