Home >Database >Mysql Tutorial >mysql ORD()函数与ASCII()函数使用分析

mysql ORD()函数与ASCII()函数使用分析

WBOY
WBOYOriginal
2016-06-01 09:56:531826browse

ASCII(str1)

返回字符串str的最左面字符的ASCII代码值。如果str是空字符串,返回0。如果str是NULL,返回NULL

举例:

1.

<code class="language-sql">mysql> select ascii('hi');
+————-+
| ascii('hi') |
+————-+
|         104 |
+————-+
1 row in set</code>

104是h的ASCII值

 

2.输出b和B的ASCII值

<code class="language-sql">mysql> SELECT ASCII('b')AS Lower_Case, ASCII('B') AS Upper_Case;
+————+————+
| Lower_Case | Upper_Case |
+————+————+
|         98 |         66 |
+————+————+
1 row in set</code>

 

3.在where语句中使用ASCII函数

输出aut_name首字母的ASCII值小于70的数据

<code class="language-sql">SELECT aut_name,ASCII(aut_name)as "ASCII value of 1st character"   
FROM author   
WHERE ASCII(aut_name)</code>

 

4.输出字段中不存在没有ASCII值的数据

<code class="language-sql">SELECT * FROM table_name WHERE NOT column_to_check REGEXP '[A-Za-z0-9.,-]';</code>

 

5.与SUBSTRING一起使用计算字符串第二个以后的ASCII值

<code class="language-sql">mysql> select ASCII(SUBSTRING('database',2,1));
+———————————-+
| ASCII(SUBSTRING('database',2,1)) |
+———————————-+
|                               97 |
+———————————-+
1 row in set</code>

 

ORD() 函数

ORD() 函数返回字符串第一个字符的ASCII 值。

语法: ORD(string)

举一些简单的例子:

<code>mysql> SELECT ORD('i');
+----------+
| ORD('i') |
+----------+
|      105 |
+----------+
1 row in set</code>

或者:

<code>mysql> SELECT ORD('NowaMagic');
+------------------+
| ORD('NowaMagic') |
+------------------+
|               78 |
+------------------+
1 row in set</code>

如果汉字又如何呢?

<code>mysql> SELECT ORD('简明现代魔法');
+---------------------+
| ORD('简明现代魔法') |
+---------------------+
|            15183488 |
+---------------------+
1 row in set

mysql> SELECT ORD('简');
+-----------+
| ORD('简') |
+-----------+
|  15183488 |
+-----------+
1 row in set</code>

为什么会有 8 位数那么长呢?原因是数据库使用的字符集问题,此处的数据库使用的是 UTF-8,16位表示一个符号。顺便贴一下SQL的执行语句:

<code>mysql> SHOW CHARACTER SET;
+----------+-----------------------------+---------------------+--------+
| Charset  | Description                 | Default collation   | Maxlen |
+----------+-----------------------------+---------------------+--------+
| big5     | Big5 Traditional Chinese    | big5_chinese_ci     |      2 |
| dec8     | DEC West European           | dec8_swedish_ci     |      1 |
| cp850    | DOS West European           | cp850_general_ci    |      1 |
| hp8      | HP West European            | hp8_english_ci      |      1 |
| koi8r    | KOI8-R Relcom Russian       | koi8r_general_ci    |      1 |
| latin1   | cp1252 West European        | latin1_swedish_ci   |      1 |
| latin2   | ISO 8859-2 Central European | latin2_general_ci   |      1 |
| swe7     | 7bit Swedish                | swe7_swedish_ci     |      1 |
| ascii    | US ASCII                    | ascii_general_ci    |      1 |
| ujis     | EUC-JP Japanese             | ujis_japanese_ci    |      3 |
| sjis     | Shift-JIS Japanese          | sjis_japanese_ci    |      2 |
| hebrew   | ISO 8859-8 Hebrew           | hebrew_general_ci   |      1 |
| tis620   | TIS620 Thai                 | tis620_thai_ci      |      1 |
| euckr    | EUC-KR Korean               | euckr_korean_ci     |      2 |
| koi8u    | KOI8-U Ukrainian            | koi8u_general_ci    |      1 |
| gb2312   | GB2312 Simplified Chinese   | gb2312_chinese_ci   |      2 |
| greek    | ISO 8859-7 Greek            | greek_general_ci    |      1 |
| cp1250   | Windows Central European    | cp1250_general_ci   |      1 |
| gbk      | GBK Simplified Chinese      | gbk_chinese_ci      |      2 |
| latin5   | ISO 8859-9 Turkish          | latin5_turkish_ci   |      1 |
| armscii8 | ARMSCII-8 Armenian          | armscii8_general_ci |      1 |
| utf8     | UTF-8 Unicode               | utf8_general_ci     |      3 |
| ucs2     | UCS-2 Unicode               | ucs2_general_ci     |      2 |
| cp866    | DOS Russian                 | cp866_general_ci    |      1 |
| keybcs2  | DOS Kamenicky Czech-Slovak  | keybcs2_general_ci  |      1 |
| macce    | Mac Central European        | macce_general_ci    |      1 |
| macroman | Mac West European           | macroman_general_ci |      1 |
| cp852    | DOS Central European        | cp852_general_ci    |      1 |
| latin7   | ISO 8859-13 Baltic          | latin7_general_ci   |      1 |
| utf8mb4  | UTF-8 Unicode               | utf8mb4_general_ci  |      4 |
| cp1251   | Windows Cyrillic            | cp1251_general_ci   |      1 |
| utf16    | UTF-16 Unicode              | utf16_general_ci    |      4 |
| cp1256   | Windows Arabic              | cp1256_general_ci   |      1 |
| cp1257   | Windows Baltic              | cp1257_general_ci   |      1 |
| utf32    | UTF-32 Unicode              | utf32_general_ci    |      4 |
| binary   | Binary pseudo charset       | binary              |      1 |
| geostd8  | GEOSTD8 Georgian            | geostd8_general_ci  |      1 |
| cp932    | SJIS for Windows Japanese   | cp932_japanese_ci   |      2 |
| eucjpms  | UJIS for Windows Japanese   | eucjpms_japanese_ci |      3 |
+----------+-----------------------------+---------------------+--------+
39 rows in set</code>

Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn