日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > 数据库 >内容正文

数据库

mysql中字符串拼接函数_MySQL字符串连接函数

發布時間:2025/3/11 数据库 41 豆豆
生活随笔 收集整理的這篇文章主要介紹了 mysql中字符串拼接函数_MySQL字符串连接函数 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

一、CONCAT(str1,str2,…)

返回結果為連接參數產生的字符串。如有任何一個參數為NULL ,則返回值為 NULL。

select concat(s_id, "--", s_bar_code) from `t_storage_order_detail` WHERE `s_sn` LIKE '%R2016091200002%' LIMIT 0, 1000;

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

| concat(s_id, "--", s_bar_code) |

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

| 204--6930000003111 |

| 205--6930000003128 |

| 206--6930000003135 |

| 207--6930000003142 |

| 208--6930000003159 |

| 209--6930000003166 |

| 210--6930000003173 |

| 211--6930000003180 |

| 212--6930000003197 |

| 213--6930000003203 |

| 214--6930000003210 |

| 215--6930000003227 |

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

二、MySQL中 concat_ws 函數

使用方法:

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

CONCAT_WS() 代表 CONCAT With Separator ,是CONCAT()的特殊形式。第一個參數是其它參數的分隔符。分隔符的位置放在要連接的兩個字符串之間。分隔符可以是一個字符串,也可以是其它參數。

mysql> select concat_ws("--",s_id,s_bar_code) from `t_storage_order_detail` WHERE `s_sn` LIKE '%R2016091200002%' LIMIT 0, 1000;

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

| concat_ws("--",s_id,s_bar_code) |

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

| 204--6930000003111 |

| 205--6930000003128 |

| 206--6930000003135 |

| 207--6930000003142 |

| 208--6930000003159 |

| 209--6930000003166 |

| 210--6930000003173 |

| 211--6930000003180 |

| 212--6930000003197 |

| 213--6930000003203 |

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

28 rows in set

三、MySQL中 group_concat 函數

完整的語法如下:

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

mysql> select group_concat("'",s_bar_code,"'") from `t_storage_order_detail` WHERE `s_sn` LIKE '%R2016091200002%' LIMIT 0, 1000;

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

| group_concat("'",s_bar_code,"'") |

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

| '6930000003111','6930000003128','6930000003135','6930000003142','6930000003159','6930000003166','6930000003173','6930000003180','6930000003197','6930000003203','6930000003210','6930000003227','6930000003234','6930000003241','6930000003258','6930000003265','6930000003272','6930000003289','6930000003296','6930000003302','6930000003319','6930000003326','6930000003333','6930000003340','6930000003357','6930000003364','6930000003371','6930000003388' |

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

1 row in set

基本查詢

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)

1.int字段的連接陷阱?當你用group_concat的時候請注意,連接起來的字段如果是int型,一定要轉換成char再拼起來, 否則在你執行后(ExecuteScalar或者其它任何執行SQL返回結果的方法)返回的將不是一個逗號隔開的串, 而是byte[]。?該問題當你在SQLyog等一些工具中是體現不出來的,所以很難發現。

select group_concat(ipaddress) from t_ip 返回逗號隔開的串

select group_concat(id) from t_ip 返回byte[]

select group_concat(CAST(id as char)) from t_dep 返回逗號隔開的串

select group_concat(Convert(id , char)) from t_dep 返回逗號隔開的串

附Cast,convert的用法:

CAST(expr AS type), CONVERT(expr,type) , CONVERT(expr USING transcoding_name)

CAST() 和CONVERT() 函數可用來獲取一個類型的值,并產生另一個類型的值。?這個類型 可以是以下值其中的 一個:?BINARY[(N)]?CHAR[(N)]?DATE?DATETIME?DECIMAL?SIGNED [INTEGER]?TIME?UNSIGNED [INTEGER]

2.長度陷阱 用group_concat連接字段的時候是有長度限制的,并不是有多少連多少。但你可以設置一下。

使用group_concat_max_len系統變量,你可以設置允許的最大長度。

程序中進行這項操作的語法如下,其中 val 是一個無符號整數: SET [SESSION | GLOBAL] group_concat_max_len = val;

若已經設置了最大長度, 則結果被截至這個最大長度。?在SQLyog中執行?SET GLOBAL group_concat_max_len = 10 后,

重新打開SQLyog,設置就會生效。

創作挑戰賽新人創作獎勵來咯,堅持創作打卡瓜分現金大獎

總結

以上是生活随笔為你收集整理的mysql中字符串拼接函数_MySQL字符串连接函数的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。