比较字符串大小函数

length()返回字节长度,一个多字节字符算作多个字节。(utf8编码:一个汉字3个字节,一个数字或字母1个字节。gbk编码:一个汉字2个字节,一个数字或字母1个字节。)

char_lenth()返回字符长度,一个多字节字符算作一个字符。即不管是汉字还是数字或字母都算是1个字符。

strcmp()比较字符串大小函数,如果参数str1大于str2,返回1;如果str1小于str2,返回-1;如果str1等于str2则返回0。比较字符串大小函数是基于当前的字符集,不同字符集比较结果可能会发生变化。

mysql> select length('mysql'),length('汉字'),char_length('mysql'),char_length('
汉字');
+-----------------+------------------+----------------------+-------------------
----+
| length('mysql') | length('汉字')   | char_length('mysql') | char_length('汉字'
)   |
+-----------------+------------------+----------------------+-------------------
----+
|               5 |                6 |                    5 |
  2 |
+-----------------+------------------+----------------------+-------------------
----+
1 row in set (0.01 sec)

mysql> select length(ceil(-2.5)),char_length(ceil(-2.5));
+--------------------+-------------------------+
| length(ceil(-2.5)) | char_length(ceil(-2.5)) |
+--------------------+-------------------------+
|                  2 |                       2 |
+--------------------+-------------------------+
1 row in set (0.01 sec)

mysql> select ceil(-2.5);/*取整函数*/
+------------+
| ceil(-2.5) |
+------------+
|         -2 |
+------------+
1 row in set (0.00 sec)

mysql> select ceil(3.8);
+-----------+
| ceil(3.8) |
+-----------+
|         4 |
+-----------+
1 row in set (0.00 sec)

mysql> select ceil(-3.8);
+------------+
| ceil(-3.8) |
+------------+
|         -3 |
+------------+
1 row in set (0.00 sec)

mysql> select ceil(-2.1);
+------------+
| ceil(-2.1) |
+------------+
|         -2 |
+------------+
1 row in set (0.00 sec)

mysql> select ceil(2.1);
+-----------+
| ceil(2.1) |
+-----------+
|         3 |
+-----------+
1 row in set (0.00 sec)

mysql> select strcmp('abc','abd'),strcmp('abc','abc'),strcmp('abc','abb');
+---------------------+---------------------+---------------------+
| strcmp('abc','abd') | strcmp('abc','abc') | strcmp('abc','abb') |
+---------------------+---------------------+---------------------+
|                  -1 |                   0 |                   1 |
+---------------------+---------------------+---------------------+
1 row in set (0.00 sec)

mysql> select strcmp('1','2');
+-----------------+
| strcmp('1','2') |
+-----------------+
|              -1 |
+-----------------+
1 row in set (0.00 sec)

mysql> select strcmp('a','A');
+-----------------+
| strcmp('a','A') |
+-----------------+
|               0 |
+-----------------+
1 row in set (0.00 sec)

mysql> select strcmp('你','我');
+---------------------+
| strcmp('你','我')   |
+---------------------+
|                  -1 |
+---------------------+
1 row in set (0.00 sec)

mysql> select strcmp('ab','abc');
+--------------------+
| strcmp('ab','abc') |
+--------------------+
|                 -1 |
+--------------------+
1 row in set (0.00 sec)

mysql> select strcmp('21','3');
+------------------+
| strcmp('21','3') |
+------------------+
|               -1 |
+------------------+
1 row in set (0.00 sec)

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注