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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 综合教程 >内容正文

综合教程

mysql字符串连接,重复等字符串函数总结

發布時間:2023/12/13 综合教程 25 生活家
生活随笔 收集整理的這篇文章主要介紹了 mysql字符串连接,重复等字符串函数总结 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

mysql concat()函數

MySQL的concat函數可以連接一個或者多個字符串,如

select concat('10');

輸出10

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

輸出112233

而Oracle的concat函數只能連接兩個字符串select concat('11','22') from dual;

需要注意MySQL的concat函數在連接字符串的時候,只要其中一個是NULL,那么將返回NULL

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

輸出NULL

而Oracle的concat函數連接的時候,只要有一個字符串不是NULL,就不會返回NULL

select concat('11',NULL) from dual;

輸出11

concat_ws()函數, 表示concat with separator,即有分隔符的字符串連接

如連接后以逗號分隔

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

輸出11,22,33

和concat不同的是, concat_ws函數在執行的時候,不會因為NULL值而返回NULL

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

將輸出11,22

group_concat()可用來行轉列, Oracle沒有這樣的函數

完整的語法如下

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

如下例子:

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字段的值打印在一行,逗號分隔(默認)

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字段的值打印在一行,分號分隔

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字段的值打印在一行,逗號分隔

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排倒序
```sql
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表示復制的份數

select repeat('ab',2);
   +----------------+
   | repeat('ab',2) |
   +----------------+
   | abab           |
   +----------------+

1 row in set (0.00 sec)

SPACE(N) 函數。生成N個空格,如

select space(3);

輸出:

   +----------+
   | space(3) |
   +----------+
   |          |
   +----------+
   1 row in set (0.00 sec)

STRCMP(STR1,STR2) 字符串比較函數,該函數和字符集有關系,默認區分大小寫

若STR1和STR2相同, 則返回 0,若STR1小于STR2, 則返回 -1,若STR1大于STR2, 則返回 1

   select strcmp('abc','abc');

輸出0

select strcmp('a','ab');

輸出-1

select strcmp('abc','ab');

輸出1

總結

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

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