MySQL 有许多返回字符串的运算符和函数。本节回答问题:这样一个字符串的字符集和排序规则是什么?
        对于接受字符串输入并返回字符串结果作为输出的简单函数,输出的字符集和排序规则与主要输入值的字符集和排序规则相同。例如,
        
        返回与 具有相同字符串和排序规则的字符串
        。这同样适用于
        ,
         ,
         ,
         ,
         ,
         ,
         ,
         ,
         ,
         ,
         ,
         ,
         ,
         ,
        和
        。
UPPER(X)XINSTR()LCASE()LOWER()LTRIM()MID()REPEAT()REPLACE()REVERSE()RIGHT()RPAD()RTRIM()SOUNDEX()SUBSTRING()TRIM()UCASE()UPPER()
          与所有其他函数不同,该REPLACE()函数始终忽略字符串输入的排序规则并执行区分大小写的比较。
        如果字符串输入或函数结果是二进制字符串,则该字符串具有binary字符集和排序规则。这可以通过使用
        CHARSET()和
        COLLATION()函数来检查,这两个函数都返回binary一个二进制字符串参数:
      
mysql> SELECT CHARSET(BINARY 'a'), COLLATION(BINARY 'a');
+---------------------+-----------------------+
| CHARSET(BINARY 'a') | COLLATION(BINARY 'a') |
+---------------------+-----------------------+
| binary              | binary                |
+---------------------+-----------------------+对于组合多个字符串输入并返回单个字符串输出的操作,标准 SQL 的“聚合规则”适用于确定结果的排序规则:
- 如果发生显式,请使用 . - COLLATE- Y- Y
- 如果显式并发生,则引发错误。 - COLLATE- Y- COLLATE- Z
- 否则,如果所有排序规则都是 - Y,请使用- Y。
- 否则,结果没有排序规则。 
        例如,对于,生成的排序规则是。这同样适用于,
         ,
         ,
         ,
         ,
        和
        。
      CASE ... WHEN a THEN b WHEN b THEN c
        COLLATE X ENDXUNION||CONCAT()ELT()GREATEST()IF()LEAST()
        对于转换为字符数据的操作,操作产生的字符串的字符集和排序
        规则由确定默认连接字符集和排序规则的系统变量定义(请参阅character_set_connection第
        10.4 节,“连接字符集和排序规则”) . 这仅适用于、
         、
         、
        和
        。
      collation_connectionCAST()CONV()FORMAT()HEX()SPACE()
        从 MySQL 5.7.19 开始,虚拟生成列的表达式出现上述原则的例外情况。在此类表达式中,表字符集用于
        CONV()或
        HEX()结果,而不管连接字符集如何。
      
        如果对字符串函数返回的结果的字符集或排序规则有任何疑问,请使用
        CHARSET()或
        COLLATION()函数查找:
      
mysql> SELECT USER(), CHARSET(USER()), COLLATION(USER());
+----------------+-----------------+-------------------+
| USER()         | CHARSET(USER()) | COLLATION(USER()) |
+----------------+-----------------+-------------------+
| test@localhost | utf8            | utf8_general_ci   |
+----------------+-----------------+-------------------+
mysql> SELECT CHARSET(COMPRESS('abc')), COLLATION(COMPRESS('abc'));
+--------------------------+----------------------------+
| CHARSET(COMPRESS('abc')) | COLLATION(COMPRESS('abc')) |
+--------------------------+----------------------------+
| binary                   | binary                     |
+--------------------------+----------------------------+