zoukankan      html  css  js  c++  java
  • 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

  • 相关阅读:
    java web项目防止多用户重复登录解决方案
    通过Google浏览器Cookie文件获取cookie信息,80以上版本有效
    js实现json数据导出为Excel下载到本地
    golang 搭建web服务器
    typescript笔记
    canvas屏幕动画
    canvas鼠标特效
    博客皮肤分享
    HTML的背景色和背景图、图片
    HTML表格头部、主体、页脚
  • 原文地址:https://www.cnblogs.com/duyinqiang/p/5696678.html
Copyright © 2011-2022 走看看