sql >> データベース >  >> RDS >> MariaDB

ORD()がMariaDBでどのように機能するか

    MariaDBでは、ORD() は、文字列引数の左端の文字の数値文字コードを返す組み込みの文字列関数です。

    ORD() 関数はマルチバイト文字を処理できます。これは、ASCII()とは対照的です。 1バイト(8ビット)文字のみを処理する関数。

    構文

    構文は次のようになります:

    ORD(str)

    str 文字列引数です。

    ORD() 左端のみの数値コードを返します この文字列の文字。

    左端の文字がマルチバイト文字の場合、ORD() 次の式を使用して結果を計算します。

      (1st byte code)
    + (2nd byte code x 256)
    + (3rd byte code x 256 x 256) ...

    簡単な例を次に示します。

    SELECT ORD('H');

    結果:

    +----------+
    | ORD('H') |
    +----------+
    |       72 |
    +----------+

    前述のように、ORD() 左端のコードのみを返します キャラクター。したがって、以下でも同じ結果が得られます。

    SELECT ORD('Homer');

    結果:

    +--------------+
    | ORD('Homer') |
    +--------------+
    |           72 |
    +--------------+

    これをさらに実証するために、上記の文字列の各文字からコードを取得しましょう:

    SELECT 
        ORD('H'),
        ORD('o'),
        ORD('m'),
        ORD('e'),
        ORD('r');

    結果:

    +----------+----------+----------+----------+----------+
    | ORD('H') | ORD('o') | ORD('m') | ORD('e') | ORD('r') |
    +----------+----------+----------+----------+----------+
    |       72 |      111 |      109 |      101 |      114 |
    +----------+----------+----------+----------+----------+

    マルチバイト文字

    マルチバイト文字を使用する例を次に示します。

    SELECT ORD('©');

    結果:

    +-----------+
    | ORD('©')  |
    +-----------+
    |     49833 |
    +-----------+

    大文字と小文字の区別

    大文字のASCII値は、同等の小文字とは異なります。

    例:

    SELECT 
        ORD('H'),
        ORD('h');

    結果:

    +----------+----------+
    | ORD('H') | ORD('h') |
    +----------+----------+
    |       72 |      104 |
    +----------+----------+

    データベースの例

    ORD()の使用例を次に示します。 データベースクエリの場合:

    USE PetHouse;
    SELECT 
      PetName, 
      ORD(PetName) AS 'ASCII value of leftmost character'
    FROM Pets;

    結果:

    +---------+-----------------------------------+
    | PetName | ASCII value of leftmost character |
    +---------+-----------------------------------+
    | Fluffy  |                                70 |
    | Fetch   |                                70 |
    | Scratch |                                83 |
    | Wag     |                                87 |
    | Tweet   |                                84 |
    | Fluffy  |                                70 |
    | Bark    |                                66 |
    | Meow    |                                77 |
    +---------+-----------------------------------+

    右端の文字

    ここでは、RIGHT()を使用します 各ペット名から右端の文字を返し、それをORD()で再度使用する関数 その文字のASCII値を返す関数。

    USE PetHouse;
    SELECT 
      PetName,
      RIGHT(PetName, 1) 'Rightmost character',
      ORD(RIGHT(PetName, 1)) 'ASCII code'
    FROM Pets;

    結果:

    +---------+---------------------+------------+
    | PetName | Rightmost character | ASCII code |
    +---------+---------------------+------------+
    | Fluffy  | y                   |        121 |
    | Fetch   | h                   |        104 |
    | Scratch | h                   |        104 |
    | Wag     | g                   |        103 |
    | Tweet   | t                   |        116 |
    | Fluffy  | y                   |        121 |
    | Bark    | k                   |        107 |
    | Meow    | w                   |        119 |
    +---------+---------------------+------------+

    空の文字列

    空の文字列を指定すると、0になります 返送されます。

    SELECT ORD('');

    結果:

    +---------+
    | ORD('') |
    +---------+
    |       0 |
    +---------+

    ヌル値

    nullを提供する 結果はnull 返送されます。

    SELECT ORD(null);

    結果:

    +-----------+
    | ORD(null) |
    +-----------+
    |      NULL |
    +-----------+

    1. GROUPBYとORDERBY

    2. SQL30日より古いすべてのレコードを取得します

    3. .sql postgresqlバックアップから単一のテーブルを復元するにはどうすればよいですか?

    4. プリペアドステートメント、 `WHERE .. IN(..)`クエリと並べ替え—MySQLを使用