4

SQLでは、char()は整数を文字に変換します(たとえば、char(101)は'e'を返します)。char()の逆関数は何ですか(たとえば、「e」を101に変換します)?

4

2 に答える 2

8

ORD()または、ただし、渡された文字列の最初の文字のみを処理するのに対し、数字のリストから文字列を作成できるため、ASCII()厳密には逆ではありません。CHAR()

Michael Buen の回答によると、それORD()は MySql のみであることに注意する価値がASCII()ありますが、より広くサポートされていますが、マルチバイト文字は処理されません。

mysql> SELECT CHAR(104), ASCII('h'), ORD('h');
+-----------+------------+----------+
| CHAR(104) | ASCII('h') | ORD('h') |
+-----------+------------+----------+
| h         |        104 |      104 |
+-----------+------------+----------+
于 2012-04-27T04:14:18.330 に答える
6

私は BluesRockAddict の回答に賛成しようとしていましたが、彼は回答を削除しましたが、それが最良の回答です。SQL Server、Oracle、Postgresql、そしてもちろん MySQL など、多くのプラットフォームで ASCII が動作します。

SELECT ASCII('e')

ORD は MySQL でのみ動作します

http://www.sqlfiddle.com/

于 2012-04-27T04:21:49.710 に答える