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)