mysql合并字符串的实现

目录
  • mysql合并字符串
    • 1.CONCAT(string1,string2,…)
    • 2.CONCAT_WS(separator,str1,str2,...)
  • mysql字符串函数
    • mysql常用的字符串函数如下表所示

mysql合并字符串

1.CONCAT(string1,string2,…)

string1,string2代表字符串,concat函数在连接字符串的时候,只要其中一个是NULL,那么将返回NULL

SELECT CONCAT( '1', '01')

结果

SELECT CONCAT('1',NULL)

结果

2.CONCAT_WS(separator,str1,str2,...)

第一个参数是其它参数的分隔符。分隔符的位置放在要连接的两个字符串之间。分隔符可以是一个字符串,也可以是其它参数。如果分隔符为 NULL,则结果为 NULL。函数会忽略任何分隔符参数后的 NULL 值。

SELECT CONCAT_WS('-','1','2','3')

结果

SELECT CONCAT_WS('-','1','2',NULL)

结果

SELECT CONCAT_WS(NULL,'1','2','3')

结果

mysql字符串函数

字符串函数是MySQL中常用的函数。

字符串函数主要用于处理表中的字符串。

字符串函数包括求字符串长度、合并字符串、在字符串中插入子串和大小写字母之间的转换等函数。

mysql常用的字符串函数如下表所示

MySQL字符串函数
char_length(s) 返回字符串s的字符数
length(s) 返回字符串s的长度(一个中文字母长度为3)
concat(s1,s2,...) 返回s1,s2..拼接之后的字符串
concat(x,s1,s2,...) 返回以x为分隔符拼接之后的字符串
insert(s1,x,len,s2) 返回将s2从s1第x个字符到x+len个替换之后的字符串
upper(s) ucase(s) 将s字符串中的所有小写字母变成大写
lower(s) lcase(s) 将s字符串中的所有大写字母变成小写
left(s,n) 返回字符串s的前n个字符
rigth(s,n) 返回字符串s的后n个字符
lpad(s1,len,s2) 将字符串循环s2添加到s1的开始处,s1长度为len时停止
rpad(s1,len,s2) 将字符串循环s2添加到s1的结尾处,s1长度为len时停止
trim(s) 去除字符串s首尾两边的空格
ltrim(s) 去除字符串s开始处的空格
rtrim(s) 去除字符串s结尾处的空格
repeat(s,n) 返回将字符串s重复n次后的字符串
space(n) 返回n个空格
replace(s,s1,s2) 将字符串s2替代字符串s中的子字符串s1
strcmp(s1,s2) s1<s2,返回-1;s1=s2,返回0;s1>s2,返回1;
substring(s,n,len) 返回从字符串s的第n个字符开始长度为len的子字符串
mid(s,n,len) 返回从字符串s的第n个字符开始长度为len的子字符串
locate(s1,s) 返回s1在s中字符的第几个位置
position(s1 in s) 返回s1在s中字符的第几个位置
instr(s,s1) 返回s1在s中字符的第几个位置
reverse(s) 返回字符串s的逆序字符串

elt(n,s1,s2,sn...)

返回第n个字符串 sn
field(s,s1,s2,sn...) 返回字符串s在sn中匹配的位置 n
find_in_set(s1,s2) 返回字符串s2在s1中匹配的位置,其中s2必须是以“ , ”分隔的字符串
make_set(x,s1,s2,sn...) 按x的二进制数从sn中选取字符串

练习代码:

## 字符串函数

select char_length('admin,root'),length('admin,root'),char_length('流量明星'),length('流量明星');

select concat('a','b','c'),CONCAT_WS(',','a','b','c');

select insert('admin',2,3,'root');

select upper('adminROOTadmin,of;ajax'),ucase('adminROOTadmin');

select lower('adminROOTadmin,of;ajax'),lcase('adminROOTadmin');

select left('admin',3),right('admin',3);

select lpad('admin',12,'root'),rpad('admin',12,'root'),lpad('admin',6,'root'),rpad('admin',6,'root');

select trim(' ad min '),ltrim(' ad min '),rtrim(' ad min '),trim('ad' from 'admin admin admin ad');

select repeat('admin ',3),space(3),replace('admin','d','c');

select strcmp('admin','zdmin'),strcmp('admin','admin'),strcmp('zdmin','admin');

select substring('admin',1,3),mid('admin',1,3);

select locate('mi','admin'),position('mi' in 'admin'),instr('admin','min');

select reverse('admin'),elt(3,'admin','root','miss','running'),field('miss','admin','root','miss','running');

select find_in_set('miss','admin,root,miss,running')

select make_set(7,'a','d','m','i','n'),make_set(9,'a','d','m','i','n')

结果截图: 

 

 

以上为个人经验,希望能给大家一个参考,也希望大家多多支持我们。

(0)

相关推荐

  • mysql 字符串正则表达式及说明

    目录 概述 正则表达式运算符 正则表达式语法 概述 名称 描述 NOT REGEXP 否定的REGEXP REGEXP 字符串是否匹配正则表达式 RLIKE 字符串是否匹配正则表达式 正则表达式是指定复杂搜索的模式的有力方式.本文讨论可用于正则表达式匹配的操作符,并举例说明可以用于正则表达式操作的一些特殊字符和构造. MySQL使用了Henry Spencer的正则表达式实现,这是为了符合POSIX 1003.2.MySQL使用扩展版本支持SQL语句中的正则表达式模式匹配操作. 本文不包含 He

  • 详解MySQL substring() 字符串截取函数

    目录 MySQL substring() 字符串截取函数 1.从左边开始截取 2.从右边开始截取 3.截取特定长度的字符串 4.根据关键字截取字符串 MySQL substring() 字符串截取函数 MySQL 查询数据有时候需要对数据项进行日期格式化或截取特定部分的操作,当需要对字符串进行截取加工时用到了 substring() 函数. 1.从左边开始截取 语法:left(str, length) 说明:left(被截取字符串, 截取长度) 例子如下: select left('wangbi

  • mysql字符串格式化方式

    目录 mysql字符串格式化 mysql格式化字符串长度不够补0 1.前面补零 2.后面补0 mysql字符串格式化 今天有一个需求,mysql查询返回的格式为:80% ,而数据库中存储的是0.89的格式 sql写法如下: select CONCAT(exampaper_avg_accuracy*100,"%")  from class_everyday_statistic_result 结果如下: mysql格式化字符串长度不够补0 1.前面补零 LPAD(str,len,padst

  • MySQL函数与存储过程字符串长度限制的解决

    目录 问题描述 原因分析: 解决方案: 问题描述 MySQL函数或者存储过程中使用group_concat()函数导致数据字符过长而报错 CREATE DEFINER=`root`@`%` PROCEDURE `get_pipe_child`(IN `in_pipe2Num` varchar(25),IN `in_sectionNum` varchar(5)) BEGIN  declare ids varchar(1000) default '';   declare tempids varch

  • mysql函数之截取字符串的实现

    目录 一.mysql截取字符串函数 二.mysql截取字符串的一些栗子 mysql索引从1开始 一.mysql截取字符串函数 1.left(str,length) 从左边截取length 2.right(str,length)从右边截取length 3.substring(str,index)当index>0从左边开始截取直到结束  当index<0从右边开始截取直到结束  当index=0返回空 4.substring(str,index,len) 截取str,从index开始,截取len长

  • mysql字符串函数详细汇总

    目录 前言 计算字符串字符数的函数 计算字符串长度的函数 合并字符串函数CONCAT(s1,s2,...).CONCAT_WS(x,s1,s2,...) 替换字符串的函数INSERT(s1,x,len,s2) 字母大小写转换函数 大写转小写 小写转大写 获取指定长度的字符串的函数LEFT(s,n)和RIGHT(s,n) 填充字符串的函数LPAD(s1,len,s2)和RPAD(s1,len,s2) 删除空格的函数LTRIM(s).RTRIM(s)和TRIM(s) 删除指定字符串的函数TRIM(s

  • mysql合并字符串的实现

    目录 mysql合并字符串 1.CONCAT(string1,string2,…) 2.CONCAT_WS(separator,str1,str2,...) mysql字符串函数 mysql常用的字符串函数如下表所示 mysql合并字符串 1.CONCAT(string1,string2,…) string1,string2代表字符串,concat函数在连接字符串的时候,只要其中一个是NULL,那么将返回NULL SELECT CONCAT( '1', '01') 结果 SELECT CONCA

  • 分组字符合并SQL语句 按某字段合并字符串之一(简单合并)

    标题:按某字段合并字符串之一(简单合并) 描述:将如下形式的数据按id字段合并value字段. id    value ----- ------ 1     aa 1     bb 2     aaa 2     bbb 2     ccc 需要得到结果: id     value ------ ----------- 1      aa,bb 2      aaa,bbb,ccc 即:group by id, 求 value 的和(字符串相加) 1.sql2000中只能用自定义的函数解决 cr

  • MySQL中字符串索引对update的影响分析

    本文分析了MySQL中字符串索引对update的影响.分享给大家供大家参考,具体如下: 对某一个类型为varchar的字段添加前缀索引后,基于该子段的条件查询时间基本大幅下降:但对于update操作,所耗的时间却急剧上升,主要原因是在更新数据的同时,mysql会执行索引的更新. 下面做了一个简单的试验. (1)首先对某个亿级记录的表字段所有记录执行更新: for idx in range(1, count+1): sql = "update tbl_name set platforms='&qu

  • MySQL关于字符串中数字排序的问题分析

    本文实例讲述了MySQL关于字符串中数字排序的问题.分享给大家供大家参考,具体如下: MySQL字符串相信大家都不陌生,在MySQL字符串排序时经常会遇到一些问题,比如下面要介绍的这个 今天解决了一个关于MySQL字符串排序的很奇怪的问题,在数据里面定义的是varchar类型,实际存放的是Int类型的数据,按一下查询语句进行排序: 将字段*1或者+0可以将MySQL字符串字段按数值排序 如: select * from table where 1 order by id*1 desc; 或者 s

  • MySQL 截取字符串函数的sql语句

    1.left(name,4)截取左边的4个字符 列: SELECT LEFT(201809,4) 年 结果:2018 2.right(name,2)截取右边的2个字符 SELECT RIGHT(201809,2) 月份 结果:09 3.SUBSTRING(name,5,3) 截取name这个字段 从第五个字符开始 只截取之后的3个字符 SELECT SUBSTRING('成都融资事业部',5,3) 结果:事业部 4.SUBSTRING(name,3) 截取name这个字段 从第三个字符开始,之后

  • C语言实现合并字符串

    学会Perl以及Python之后,处理字符串也只是我很喜欢做的一件事情.进行字符串的拼接在这些高级脚本语言中是一件轻松的事情. C语言是我的编程入门语言,但是我一直对这门语言了解并不是很深.确切说,我是对庞大的标准库以及GNU等函数库知之甚少. 使用C语言进行字符串的拼接应该怎么做呢?在先前,我肯定是要定义一个新的"字符串",然后进行内存的拷贝.其实,有一个printf函数的孪生兄弟可以实现这个功能,那就是sprintf. 其实,在接触操作系统的时候我对这个函数多少有一点认识.那就是这

  • Mysql合并结果接横向拼接字段的实现步骤

    前言 近日在做一个报表功能里面有一个这样的需求是统计各部门在某一月入职和离职的人数 我的步骤 先查出入职的人数 SELECT dept ,COUNT(1) rcNumber FROM 员工表 WHERE ( 入职时间 != '' OR 入职时间 IS NOT NULL) and DATE_FORMAT(入职时间, '%Y-%m')= '2019-09' GROUP BY 部门ID ORDER BY 部门名称 查询记录 在查询出离职的人数sql: SELECT dept ,COUNT(1) rcN

  • MySQL实现字符串的拼接,截取,替换,查找位置的操作

    MySQL字符串的拼接.截取.替换.查找位置. 常用的字符串函数: 函数 说明 CONCAT(s1,s2,...) 返回连接参数产生的字符串,一个或多个待拼接的内容,任意一个为NULL则返回值为NULL. CONCAT_WS(x,s1,s2,...) 返回多个字符串拼接之后的字符串,每个字符串之间有一个x. SUBSTRING(s,n,len).MID(s,n,len) 两个函数作用相同,从字符串s中返回一个第n个字符开始.长度为len的字符串. LEFT(s,n).RIGHT(s,n) 前者返

  • MySQL实现字符串截取的图文教程

    目录 前言 接下来我们就以第二种方式为列进行总结 附:mysql相关字符串截取的函数详解 总结 前言 在后端开发过程中与数据库打交道乃是家常便饭,有时候会遇到只要数据库中的某条数据的一部分,这个时候有两种方式: (1)把其读取出来后再进行相应的处理 (2)在读取的时候利用MySQL自带的函数进行处理 接下来我们就以第二种方式为列进行总结 (1)创建一个用户表,如下: (2)left(col_name, length) 函数:   从左往右截取.col_name是列名(必选),length是从左往

  • Mysql将字符串按照指定字符分割的正确方法

    目录 前言 一:分两次查询(不是本文重点,但可以实现) 二:将file_ids字段分割成多列,类似Mysql的行转列 附:mysql如何将字符串按分隔符拆分 总结 前言 在某些场景下(比如:用户上传文件或者图片等),一般的做法是将文件信息(文件名,文件路径,文件大小等)保存到文件表(user_file)中,然后再将用户所有上传的文件的id用一个指定字符拼接然后存在表(user)中某个字段里(假设是:file_ids).在展示用户上传的文件时就直接查询文件表中就好了: -- 一般的语句是这样的,假

随机推荐