`

mysql字符窜函数

 
阅读更多

今天在研究MySQL的函数所以写下了这篇文章:CONCAT。它可以将多个字符串连接成一个字符串,以下是手册上的讲解:

—————————–

CONCAT(str1,str2,…)                       
返回结果为连接参数产生的字符串。如有任何一个参数为NULL ,则返回值为 NULL。或许有一个或多个参数。 如果所有参数均为非二进制字符串,则结果为非二进制字符串。 如果自变量中含有任一二进制字符串,则结果为一个二进制字符串。一个数字参数被转化为与之相等的二进制字符串格式;若要避免这种情况,可使用显式类型 cast, 例如: SELECT CONCAT(CAST(int_col AS CHAR), char_col)

mysql> SELECT CONCAT(’My’, ‘S’, ‘QL’);

        -> ‘MySQL‘

mysql> SELECT CONCAT(’My’, NULL, ‘QL’);

        -> NULL

mysql> SELECT CONCAT(14.3);

        -> ‘14.3′

CONCAT_WS(separator,str1,str2,…)
CONCAT_WS() 代表 CONCAT With Separator ,是CONCAT()的特殊形式。   第一个参数是其它参数的分隔符。分隔符的位置放在要连接的两个字符串之间。分隔符可以是一个字符串,也可以是其它参数。如果分隔符为 NULL,则结果为 NULL。函数会忽略任何分隔符参数后的 NULL 值。

mysql> SELECT CONCAT_WS(’,',’First name’,'Second name’,'Last Name’);

        -> ‘First name,Second name,Last Name’

mysql> SELECT CONCAT_WS(’,',’First name’,NULL,’Last Name’);

        -> ‘First name,Last Name’

CONCAT_WS()不会忽略任何空字符串。 (然而会忽略所有的 NULL)。

——————————————

    MySQL内置了许多函数,以前都没有好好利用,今天用了一个感觉非常之方便,减少了大量的代码工作量。

concat和concat_ws()区别及MySQL的几个实用字符串函数 

1、concat()函数

    1.1 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)

       而Oracle的concat函数只能连接两个字符串

        SQL> select concat('11','22') from dual;

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

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

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

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

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

        | NULL                   |

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

       1 row in set (0.00 sec)

       而Oracle的concat函数连接的时候,只要有一个字符串不是NULL,就不会返回NULL

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

       CONCAT

       --

       11

2、concat_ws()函数, 表示concat with separator,即有分隔符的字符串连接

    如连接后以逗号分隔

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

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

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

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

        | 11,22,33                      |

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

       1 row in set (0.00 sec)

   和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)

3、group_concat()可用来行转列, Oracle没有这样的函数

    完整的语法如下

    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)

   3.1 以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)

   3.2 以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)

   3.3 以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)

   3.4 以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)

4、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)

分享到:
评论

相关推荐

    MySQL 字符串函数大全

    MySQL 字符串函数大全 对于针对字符串位置的操作,第一个位置被标记为1。 ASCII(str) 返回字符串str的最左面字符的ASCII代码值。如果str是空字符串,返回0。如果str是NULL,返回NULL。 mysql> select ASCII(‘2’); ...

    mysql常用字符串函数、字符串处理函数大全

    MySQL字符串函数是数据库操作中非常关键的一部分,它们用于处理和操作文本数据。以下是一些常见的MySQL字符串函数及其详细解释: 1. `ASCII(str)`:这个函数返回字符串`str`的第一个字符的ASCII码值。如果`str`为空...

    mysql的字符串函数

    MySQL 字符串函数 MySQL 中有多种字符串函数,可以用于字符串操作和处理。这些函数可以帮助用户更好地处理和分析字符串数据。 1. ASCII(str) 函数 ASCII(str) 函数返回字符串 str 的最左面字符的 ASCII 代码值。...

    MySQL中字符串函数详细介绍

    符串或串(String)是由零个或多个字符组成的有限序列。一般记为 s=’a1a2•••an'... 下面我们来看看MySQL中的字符串函数 假如结果的长度大于 max_allowed_packet 系统变量的最大值时,字符串值函数的返回值为NULL。 对

    mysql 字符串函数收集比较全

    MySQL 字符串函数收集比较全 MySQL 中的字符串函数是对字符串进行操作和处理的重要工具,本文将介绍 MySQL 中的常用字符串函数。 1. ASCII(str) 函数 ASCII(str) 函数返回字符串 str 的最左面字符的 ASCII 码值。...

    MySQL字符串函数详解(推荐)

    以上只是MySQL字符串函数的一部分,实际上还有更多如`INSERT`, `STRCMP`, `REVERSE`, `REPEAT`等,它们在处理和操作字符串时提供了极大的灵活性。了解并熟练掌握这些函数,能有效提高数据库查询和数据处理的效率。

    mysql拼接字符串函数

    MySQL 拼接字符串函数 MySQL 中有三个常用的字符串拼接函数:CONCAT、CONCAT_WS 和 GROUP_CONCAT。这些函数都可以用来将多个字符串连接起来,但是它们的使用场景和效果不同。 CONCAT 函数 CONCAT 函数的语法是 `...

    MySQL中字符串函数详细介绍[转][定义].pdf

    以下是一些重要的MySQL字符串函数的详细说明: 1. ASCII(str): 这个函数返回字符串`str`的第一个字符的ASCII码值。如果`str`为空字符串,它返回0;如果`str`为NULL,它返回NULL。例如,ASCII('M')返回50。 2. BIN...

    mysql字符串连接函数

    ### MySQL字符串连接函数详解 在处理数据库中的字符串操作时,MySQL提供了多种强大的工具来帮助我们进行数据处理。本文主要介绍几种常用的字符串连接函数,包括`CONCAT()`、`CONCAT_WS()`以及`GROUP_CONCAT()`函数...

    mysql字符串比较函数:concat和regexp.pdf

    mysql字符串比较函数:concat和regexp.pdf

    MySQL的字符串函数使用说明

    MySQL中的字符串函数是数据库操作中不可或缺的一部分,它们用于处理和操作文本数据,这些数据在数据库中以字符串形式存在。字符串函数提供了多种功能,包括字符转换、查找、替换、截取和计算长度等。 1. ASCII(str)...

    MySql字符串相似匹配

    亲测可用,mysql字符串相似度匹配函数。下载后直接在mysql中可以测试运行。

    mysql 计算字符串相似度

    MySQL 提供了多种方法来实现字符串相似度的计算,其中一种较为常见的做法是通过自定义函数来实现。本文将详细介绍如何在 MySQL 中创建一个自定义函数 `sfn_GetSimilar_Rate` 来计算两个中文字符串的相似度,并基于此...

    mysql拼接字符串函数.docx

    MySQL 拼接字符串函数 MySQL 中提供了两个主要的拼接字符串函数:CONCAT 函数和 CONCAT_WS 函数。这两个函数可以帮助开发者方便地进行字符串的拼接操作。 CONCAT 函数 CONCAT 函数是 MySQL 中最基本的拼接字符串...

    Mysql字符串处理函数详细介绍、总结

    MySQL中的字符串处理函数是数据库操作中非常重要的工具,它们允许我们对存储的数据进行各种操作,如拼接、截取、转换、查找等。以下是对这些函数的详细解释: 1. ASCII(char):此函数返回字符的ASCII码值,即字符...

    MySQL基础-字符串函数和操作符.pdf

    MySQL基础——字符串函数和操作符

    mysql分割字符串

    MySQL不提供内置的多分隔符字符串分割函数,但可以通过创建用户定义的函数(UDF)来实现。这通常涉及到C语言编程,将编译好的库文件导入到MySQL服务器。然而,对于简单的分割任务,可以考虑在应用程序层处理。 四、...

Global site tag (gtag.js) - Google Analytics