在mysql中ASCII、ORD函數都是把字符轉換成ascii碼值的函數了,下面我來給各位同學介紹一下mysql中ASCII、ORD用法。
一,ASCII(str1)
返回字符串str的最左面字符的ASCII代碼值。如果str是空字符串,返回0。如果str是NULL,返回NULL
舉例:
1.
104是h的ASCII值
2.輸出b和B的ASCII值
代碼如下 復制代碼mysql> SELECT ASCII('b')AS Lower_Case, ASCII('B') AS Upper_Case;
+————+————+
| Lower_Case | Upper_Case |
+————+————+
| 98 | 66 |
+————+————+
1 row in set
3.在where語句中使用ASCII函數
輸出aut_name首字母的ASCII值小於70的數據
代碼如下 復制代碼 SELECT aut_name,ASCII(aut_name)as "ASCII value of 1st character"4.輸出字段中不存在沒有ASCII值的數據
代碼如下 復制代碼SELECT * FROM table_name WHERE NOT column_to_check REGEXP '[A-Za-z0-9.,-]';
5.與SUBSTRING一起使用計算字符串第二個以後的ASCII值
代碼如下 復制代碼mysql> select ASCII(SUBSTRING('database',2,1));
+———————————-+
| ASCII(SUBSTRING('database',2,1)) |
+———————————-+
| 97 |
+———————————-+
1 row in set
二,ord函數
ORD(str)
如果字符串str最左面字符是一個多字節字符,通過以格式
代碼如下 復制代碼((first byte ASCII code)*256+(second byte ASCII code))[*256+third byte ASCII code...]
返回字符的ASCII代碼值來返回多字節字符代碼。如果最左面的字符不是一個多字節字符。返回與ASCII()函數返回的相同值。
代碼如下 復制代碼
1 mysql> select ORD('2');
2 -> 50