mysql ( )连接_MySQL中concat函数(连接字符串)

MySQL中concat函数

使用方法:

CONCAT(str1,str2,…)

返回结果为连接参数产生的字符串。如有任何一个参数为NULL ,则返回值为 NULL。

注意:

如果所有参数均为非二进制字符串,则结果为非二进制字符串。

如果自变量中含有任一二进制字符串,则结果为一个二进制字符串。

一个数字参数被转化为与之相等的二进制字符串格式;若要避免这种情况,可使用显式类型 cast, 例如:

SELECT CONCAT(CAST(int_col AS CHAR), char_col)

MySQL的concat函数可以连接一个或者多个字符串,如

mysql> select concat('10');

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

| concat('10') |

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

| 10   |

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

1 row in set (0.00 sec)

mysql> select concat('11','22','33');

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

| concat('11','22','33') |

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

| 112233 |

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

1 row in set (0.00 sec)

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

mysql> select concat('11','22',null);

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

| concat('11','22',null) |

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

| NULL   |

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

1 row in set (0.00 sec)

MySQL中concat_ws函数使用方法:

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

CONCAT_WS() 代表 CONCAT With Separator ,是CONCAT()的特殊形式。第一个参数是其它参数的分隔符。分隔符的位置放在要连接的两个字符串之间。分隔符可以是一个字符串,也可以是其它参数。

注意:

如果分隔符为 NULL,则结果为 NULL。函数会忽略任何分隔符参数后的 NULL 值。

如连接后以逗号分隔

mysql> select concat_ws(',','11','22','33');

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

| concat_ws(',','11','22','33') |

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

| 11,22,33 |

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

1 row in set (0.00 sec)

和MySQL中concat函数不同的是, concat_ws函数在执行的时候,不会因为NULL值而返回NULL

mysql> select concat_ws(',','11','22',NULL);

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

| concat_ws(',','11','22',NULL) |

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

| 11,22 |

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

1 row in set (0.00 sec)

MySQL中group_concat函数

完整的语法如下:

group_concat([DISTINCT] 要连接的字段 [Order BY ASC/DESC 排序字段] [Separator '分隔符'])

基本查询

mysql> select * from aa;

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

| id| name |

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

|1 | 10|

|1 | 20|

|1 | 20|

|2 | 20|

|3 | 200   |

|3 | 500   |

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

6 rows in set (0.00 sec)

以id分组,把name字段的值打印在一行,逗号分隔(默认)

mysql> select id,group_concat(name) from aa group by id;

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

| id| group_concat(name) |

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

|1 | 10,20,20|

|2 | 20 |

|3 | 200,500|

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

3 rows in set (0.00 sec)

以id分组,把name字段的值打印在一行,分号分隔

mysql> select id,group_concat(name separator ';') from aa group by id;

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

| id| group_concat(name separator ';') |

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

|1 | 10;20;20 |

|2 | 20|

|3 | 200;500   |

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

3 rows in set (0.00 sec)

以id分组,把去冗余的name字段的值打印在一行,

逗号分隔

mysql> select id,group_concat(distinct name) from aa group by id;

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

| id| group_concat(distinct name) |

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

|1 | 10,20|

|2 | 20   |

|3 | 200,500 |

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

3 rows in set (0.00 sec)

以id分组,把name字段的值打印在一行,逗号分隔,以name排倒序

mysql> select id,group_concat(name order by name desc) from aa group by id;

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

| id| group_concat(name order by name desc) |

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

|1 | 20,20,10   |

|2 | 20|

|3 | 500,200|

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

3 rows in set (0.00 sec)

repeat()函数

用来复制字符串,如下'ab'表示要复制的字符串,2表示复制的份数

mysql> select repeat('ab',2);

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

| repeat('ab',2) |

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

| abab           |

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

1 row in set (0.00 sec)

又如

mysql> select repeat('a',2);

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

| repeat('a',2) |

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

| aa            |

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

1 row in set (0.00 sec)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/507885.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

远程连接电脑_Python黑科技:在家远程遥控公司电脑,python+微信一键连接!

有时候需要远程家里的台式机使用,因为我平时都是用 MAC 多,但是远程唤醒只能针对局域网,比较麻烦,于是我想用微信实现远程唤醒机器。准备工作本程序主要是实现远程管理 Windows10操作系统的开机和关机:在 Windows机器的…

mysql count 优化索引_如何通过使用索引在InnoDB上优化COUNT(*)性能

我有一个小而狭窄的InnoDB表,大约有900万条记录。在桌子上count(*)或count(id)桌子上做的速度非常慢(超过6秒):DROP TABLE IF EXISTS perf2;CREATE TABLE perf2 (id int(11) NOT NULL AUTO_INCREMENT,channel_id int(11) DEFAULT NULL,timestamp bigint(…

ppt生成器_9款魔性#傻瓜生成器#,上班可以划水一天

有些 #傻瓜生成器#,表面上叫傻瓜,实际上一玩就停不下来。不分享出来,未免不近人情。毕竟,大伙上班累了,也需要一些奇怪的东西划划水不是?1 沙雕DIY跳舞生成器这款傻瓜生成器,真不能叫傻瓜&#…

vue组件prop变量和内部变量数据格式不一样时,变量同步prop值,变量改变通知父组件.

vue组件含有v-model的props,当对其进行封装,想对该属性进行双向绑定时,可以采用computed的方式包一层get(){return props.xxx},set(v)>{emit(update:xxx,v)},或者使用vueuse的useModel来深层代理,但是只适合要封装的组件prop的内部的变量数据类型一致,不一致就只能拆开写,通…

mysql移动文件后打不开_Windows端MySQL data目录迁移(貌似会启动不了)

遇到一个现场问题,实施人员把mysql的data放在C盘,用过一阵以后C盘快满了。于是准备做数据迁移,想到如下几种方案(均需要先把mysql服务停掉):1.转储SQL文件但是问题是,想要迁移的库占了1.5T,是T啊&#xff0…

302 found是什么意思_犯罪大师心中的恶魔答案是什么 心中的恶魔答案真相分析...

犯罪大师是今年很热门的一个破案题材的游戏,游戏中有很多匪夷所思的案件,需要玩家解答,游戏中经常更新一些突发案件,最新的突发案件是心中的恶魔是一个很不错的案件,那么到底要怎么才能找到正确的凶手呢?希…

mysql源码安装报错_mysql 的二进制和源码包 安装的报错总结

MySQL报错总结报错原因:/application/mysql-5.6.44/tmp不存在解决方法:mkdir /application/mysql-5.6.44/tmp报错原因: /application/mysql-5.6.44/存放socket 目录没有权限解决方法:chown -R mysql.mysql /application/mysql-5.6…

hao123电脑版主页_建议Lenovo用户卸载监守自盗的联想电脑管家

最近我一直很迷惑,作为一个不用笔记本电脑上xxxxhub/2048等奇妙平台的正经大学生,为什么时而会出现辣鸡页游广告弹窗?好吧,最后我耐心等待,终于在某次弹出垃圾广告的时候定位了这个进程——AdvPopForm.exe在“wprst”的…

mysql 自增 不是主键_程序员经典面试题,MySQL自增主键为什么不连续

在我们日常使用Mysql中,如果不是特殊的业务需要,一般我们都会使用自增主键,自增主键的好处可以在插入的时候尽量地减少页分割,增加Mysql的写入效率。我们有时候就会发现,自增主键并不是连续递增的,为什么有…

怎么彻底重装清空电脑_电脑开不了机怎么重装系统?不用送去维修店啦!

小白系统免费的人工客服点击联系电脑无法启动的时候怎么办呢?很多朋友直接送去电脑城了,但是去一次就如同在百度上查询自己得了什么病是一样的,查一下自己不舒服就癌症了,电脑城查一下就问你卖多少钱,费时费力&#xf…

安装mysql无法登录_【windows 下安装 mysql-server 无法登录问题解决】

----------------------------- 无感的首行 -----------------------------新版 mysql-server 5.7 安装后发现无法使用 mysql -uroot (-p) 来登录,查了下文档发现新版在安装时会初始化一个密码放在启动的错误文件里,错误文件的路径 %mysql-server-dir%da…

日语输入法电脑版_日语轻松入门小百科

如果你一直以来都对日语抱有强烈的兴趣,那么就赶紧跟我一起轻松入门吧~科普之一:日语五十音图什么是假名?什么是五十音图?日语的字母叫做假名,每个假名代表一个音节。假名有两种书写方式,即平假名和片假名&…

jta mysql_JTA 使用 MySQL 分布式事务

假定在MySQL实例1上有表create table person(id int,name varchar(32))MySQL实例2上也有一张同样的表,现在从实例1中的 person 表中删除一条数据,并把这条数据插入到实例2的表中,这两个操作在同一个事务中,因为跨越了数据库实例&a…

mysql load average_紧急求助:load average太高了!!

站点同时在线人数300人左右,top出来的load average超过4,有时达到了8点多!sleeping进程达到了三百多!大部分是来自apache,导致房问速度很慢!!不知问题出在哪里,请高手赐教,谢谢&…

a jni error has occurred_A-08 幂函数、有理函数、代数函数

欢迎光临我的专栏《微积分学习之旅》,一起学习,共同提高。函数是微积分的基础,我们已经学习了直线函数和多项式函数,本篇中我们继续学习幂函数、有理函数和代数函数。幂函数(Power Functions)如果一个函数形…

mysql 求两列数据组合_mysql – 将两个具有不同列数的查询组合在一起

我有两个查询要组合成单个输出,我不能使用UNIOn,因为它们具有不同的列数.该表是ref,字段id为refid cellid cat,其中包含整数查询1:查找每个唯一cellid的总行数SELECT cellid,COUNT(*) totalcount,cat FROM rel GROUP BY cellid查询2:为每个唯一的cellid查…

echarts 浏览器兼容性_谷歌浏览器不再使用quot;黑名单quot; / iPhone可能放弃lightning充电口//微软中国被列为被执行人/QQ 音乐上线...

# 避免种族歧视 ,谷歌浏览器将不再使用"黑名单"6月9日报道,由于全球各地反对种族歧视的呼声高涨,谷歌决定修改Chrome浏览器中可能引发种族歧视联想的表述,包括“黑名单”、“白名单”等词。报道称,谷歌将通过…

python输出结果每5个换行_python for循环 - python基础入门(11)

文章首发微信公众号,微信搜索:猿说python在python开发中,除了前篇文章介绍的while循环还有一个for循环也经常使用,两者使用都是大同小异,for循环的使用相对于while循环更加灵活,下面我们一起来了解下具体区…