mysql 多个字段拼接的实例详解图,mysql 多个字段拼接的实例详解是什么,mysql 多个字段拼接的实例详解

mysql 多个字段拼接的实例详解图,mysql 多个字段拼接的实例详解是什么,mysql 多个字段拼接的实例详解

本文主要介绍了几个mysql字段拼接实例的详细讲解,有很好的参考价值,希望对大家有所帮助。来和边肖一起看看吧。

Mysql查询结果行字段拼接可以通过以下两个函数实现:

1. concat函数

mysql从测试中选择concat('1 ',' 2 ',' 3 ');

-

| concat('1 ',' 2 ',' 3') |

-

| 123 |

-

如果连接字符串中有NULL,则返回的结果为NULL:

mysql select concat('1 ',' 2 ',NULL,' 3 ')from test;

-

| concat('1 ',' 2 ',NULL,' 3') |

-

| NULL |

-

2. concat_ws函数

Concat(分隔符,str1,str2,)代表带分隔符的concat,是concat()的一种特殊形式。第一个参数是其他参数的分隔符。分隔符放在要连接的两个字符串之间。分隔符可以是字符串或其他参数。

mysql select concat_ws(':',' 1 ',' 2 ',' 3 ')from test;

-

| concat_ws(':',' 1 ',' 2 ',' 3') |

-

| 1:2:3 |

-

如果分隔符为空,则返回的结果为空:

mysql select concat_ws(NULL,' 1 ',' 2 ',' 3 ')from test;

-

| concat_ws(NULL,' 1 ',' 2 ',' 3') |

-

| NULL |

-

如果参数中存在NULL,将被忽略:

mysql select concat_ws(':',' 1 ',' 2 ',NULL,NULL,NULL,' 3 ')from test;

-

| concat_ws(':',' 1 ',' 2 ',NULL,NULL,NULL,' 3') |

-

| 1:2:3 |

-

您可以判断NULL并用其他值替换它:

mysql select concat_ws(':',' 1 ',' 2 ',ifNULL(NULL,' 0 '),' 3 ')from bank limit 1;

-

| concat_ws(':',' 1 ',' 2 ',ifNULL(NULL,' 0 '),' 3') |

-

| 1:2:0:3 |

-

补充:补充:mysql中分组时将某个字段的值进行拼接

t_dog表

t_vaccine表

t_dog_vaccine表

问题描述

我需要在dog_vaccine中找出每只狗对应的疫苗。因为狗和疫苗是多对多的,一只狗可能对应多个疫苗,但是我想把这些疫苗通过字符串拼接成一个,然后映射到java实体类。

一步步解决

我使用了两个左连接查询来连接三个表:t_dog表、t_vaccine表和t_dog_vaccine表。

选择dv.id作为id,

d .狗名作为狗名,v .疫苗名

t _狗_疫苗dv

dv上左连接t _ dog d . dog _ id=d . id

左连接dv上的t _ vaccine v . vaccine _ id=v . id

虽然狗和疫苗是匹配的,但是每只狗都有多条记录,我只想要一只狗的名字和多个vaccine_name值组合成一个字符串的数据。想了想,突然想到了Groupby。

选择dv.id作为id,

d .狗名作为狗名,v .疫苗名

t _狗_疫苗dv

dv上左连接t _ dog d . dog _ id=d . id

左连接dv上的t _ vaccine v . vaccine _ id=v . id

按狗名分组

用group by显然不是我想到的结果。虽然只有一个狗名,但是对应的疫苗也只有一种。我想要多个疫苗名称,该怎么办?有没有可以拼接字符串的功能?Emmmmm,知道了,group_concat。

选择dv.id作为id,

d.dog_name作为dogName,

group_concat(v.vaccine_name)作为dogVaccineName

t _狗_疫苗dv

dv上左连接t _ dog d . dog _ id=d . id

左连接dv上的t _ vaccine v . vaccine _ id=v . id

按d.dog_name分组

这样才能达到我想要的效果。

group_concat用法

默认用法

select group _ concat(vaccine _ name)as dog vaccine name from t _ vaccine where id in(select vaccine _ id from t _ dog _ vaccine where dog _ id=1)

group_concat拼接的默认分隔符是','。如果我们想改变这个分隔符,我们可以这样做。

替换(group _ concat (vaccine _ name),',','在此处填写要更改的分隔符)

比如我想把默认改成;

select REPLACE(group _ concat(vaccine _ name),',',';')作为来自t _ vaccine where id in(select vaccine _ id from t _ dog _ vaccine where dog _ id=1)的dogVaccineName

以上个人经历,希望能给大家一个参考,也希望大家多多支持我们。如有错误或不足之处,请不吝赐教。

郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。

相关文章阅读

  • 使用php连接mysql数据库,php连接数据库的方法
  • 使用php连接mysql数据库,php连接数据库的方法,一文详解PHP连接MySQL数据库的三种方式
  • pymysql菜鸟教程,pymysql 使用
  • pymysql菜鸟教程,pymysql 使用,pymysql模块使用简介与示例
  • mysql锁实现,mysql锁算法
  • mysql锁实现,mysql锁算法,MySQL锁机制与用法分析
  • mysql连接报错10061,mysql连接错误10060
  • mysql连接报错10061,mysql连接错误10060,MYSQL无法连接 提示10055错误的解决方法
  • mysql连接报10060错误,mysql连接报错10055
  • mysql连接报10060错误,mysql连接报错10055,MySQL连接异常报10061错误问题解决
  • mysql辅助索引和主键索引,mysql 主键 外键 索引
  • mysql辅助索引和主键索引,mysql 主键 外键 索引,MySQL索引之主键索引
  • MySQL语句大全,mysql常见语句总结
  • MySQL语句大全,mysql常见语句总结,MySQL语句整理及汇总介绍
  • mysql触发器的使用方法实验报告,mysql中触发器的使用
  • 留言与评论(共有 条评论)
       
    验证码: