SAK 図書館

SAK Streets メインストリート 図書館・カフェ 一覧 SAK Streets 検索
| VB | SQL | Perl | PHP | ASP | JSP | C | PC | HP | FAQ | フリーソフト |

MySQL 編14 - 文字関数、連結、空白削除、置換、切出、検索、長さ、数値

■文字列連結

  ・文字列結合は concat() を使用する。

select concat(123456, 789012);

+------------------------+
| concat(123456, 789012) |
+------------------------+
| 123456789012           |
+------------------------+

select concat('123456', 789012);

+--------------------------+
| concat('123456', 789012) |
+--------------------------+
| 123456789012             |
+--------------------------+

select concat('123456', '789012');

+----------------------------+
| concat('123456', '789012') |
+----------------------------+
| 123456789012               |
+----------------------------+

select concat(key1, data1) from testm;

+---------------------+
| concat(key1, data1) |
+---------------------+
| a0011               |
| a0111               |
| b00210              |
| c003100             |
+---------------------+

■char 文字変換

  ・char() 関数は、コードに該当する ASCII 文字を返す。
    この例では、「1」と言う文字が返る。

select char(49);

+----------+
| char(49) |
+----------+
| 1        |
+----------+

■ascii コード変換

  ・ascii() 関数は、文字に該当する ASCII コードを返す。
    この例では、「49」と言う数字が返る。

select ascii('1');

+------------+
| ascii('1') |
+------------+
|         49 |
+------------+

■小文字化

  ・lower() 関数は、英字を小文字にして返す。

select lower('ABC012');

+-----------------+
| lower('ABC012') |
+-----------------+
| abc012          |
+-----------------+

■大文字化

  ・upper() 関数は、英字を大文字にして返す。

select upper('abc012');

+-----------------+
| upper('abc012') |
+-----------------+
| ABC012          |
+-----------------+

■左文字埋め

  ・lpad() 関数は、文字列の左に指定文字を埋めて指定数切り出します。
    (切り出し指定数になるまで繰り返し埋めます。)

select lpad('abc', 5, '0');

+---------------------+
| lpad('abc', 5, '0') |
+---------------------+
| 00abc               |
+---------------------+

select lpad('abc', 5, '012');

+-----------------------+
| lpad('abc', 5, '012') |
+-----------------------+
| 01abc                 |
+-----------------------+

  ・指定文字省略値はないようで、指定しないとエラーになる。

select lpad('abc', 5, ' ');

+---------------------+
| lpad('abc', 5, ' ') |
+---------------------+
|   abc               |
+---------------------+

■右文字埋め

  ・rpad() 関数は、文字列の右に指定文字を埋めて指定数切り出します。
    (切り出し指定数になるまで繰り返し埋めます。)

select rpad('abc', 5, '0');

+---------------------+
| rpad('abc', 5, '0') |
+---------------------+
| abc00               |
+---------------------+

select rpad('abc', 5, '012');

+-----------------------+
| rpad('abc', 5, '012') |
+-----------------------+
| abc01                 |
+-----------------------+

  ・指定文字省略値はないようで、指定しないとエラーになる。

select rpad('abc', 5, ' ');

+---------------------+
| rpad('abc', 5, ' ') |
+---------------------+
| abc                 |
+---------------------+

■左空白削除

  ・ltrim() 関数は、文字列の左側の空白を除去します。

select ltrim('          abc');

+------------------------+
| ltrim('          abc') |
+------------------------+
| abc                    |
+------------------------+

■右空白削除

  ・rtrim() 関数は、文字列の右側の空白を除去します。

select ltrim('abc          ');

+------------------------+
| ltrim('abc          ') |
+------------------------+
| abc                    |
+------------------------+

■左右空白削除

  ・trim() 関数は、文字列の左右の空白を除去します。

select trim('          abc          ');

+---------------------------------+
| trim('          abc          ') |
+---------------------------------+
| abc                             |
+---------------------------------+

■文字列置き換え

  ・replace() 関数は、文字列の置き換えをする。
    「a0a1a2」中の a0 を b1 に置き換える場合、次のようにします。

select replace('a0a1a2', 'a0', 'b1');

+-------------------------------+
| replace('a0a1a2', 'a0', 'b1') |
+-------------------------------+
| b1a1a2                        |
+-------------------------------+

  ・translate() 関数は、ないようである。

■文字列切り出し

  ・substring() 関数は、文字列の切り出しをする。

select substring('abc012', 3, 2);

+---------------------------+
| substring('abc012', 3, 2) |
+---------------------------+
| c0                        |
+---------------------------+

  ・開始位置以降、最後まで切り出す場合は、切り出す文字数を省略できる。

select substring('abc012', 3);

+------------------------+
| substring('abc012', 3) |
+------------------------+
| c012                   |
+------------------------+

■文字列検索

  ・locate() 関数は、文字列の検索を行う。

select locate('c0', 'abc012');

+------------------------+
| locate('c0', 'abc012') |
+------------------------+
|                      3 |
+------------------------+

select locate('c0', 'abc012c0', 4);

+-----------------------------+
| locate('c0', 'abc012c0', 4) |
+-----------------------------+
|                           7 |
+-----------------------------+

■文字列の長さ

  ・length() 関数は、文字列の長さを返す。

select length('abc012');

+------------------+
| length('abc012') |
+------------------+
|                6 |
+------------------+

■文字列繰り返し

  ・repeat() 関数は、文字列を繰り返し返す。

select repeat('abc012', 2);

+---------------------+
| repeat('abc012', 2) |
+---------------------+
| abc012abc012        |
+---------------------+

■数値から文字列へ変換 (数値フォーマット、書式変換)

  ・文字列としての結合は concat() を使用する。

select concat(123456, 789012);

+------------------------+
| concat(123456, 789012) |
+------------------------+
| 123456789012           |
+------------------------+

select concat('123456', 789012);

+--------------------------+
| concat('123456', 789012) |
+--------------------------+
| 123456789012             |
+--------------------------+

select concat('123456', '789012');

+----------------------------+
| concat('123456', '789012') |
+----------------------------+
| 123456789012               |
+----------------------------+

  ・三桁毎にカンマを付けるには、次のようにする。

select format(123456, 0);

+-------------------+
| format(123456, 0) |
+-------------------+
| 123,456           |
+-------------------+

select format(123456, 2);

+-------------------+
| format(123456, 2) |
+-------------------+
| 123,456.00        |
+-------------------+

■文字列から数値へ変換

  ・勝手にやるみたいです。

select '0123' + 100;

+--------------+
| '0123' + 100 |
+--------------+
|          223 |
+--------------+

select '0123' + '100';

+----------------+
| '0123' + '100' |
+----------------+
|            223 |
+----------------+

■型変換

  ・cast() 関数は、ANSI 規程の変換関数です。

select cast(concat('123', '456') as signed);

+--------------------------------------+
| cast(concat('123', '456') as signed) |
+--------------------------------------+
|                               123456 |
+--------------------------------------+

select cast(concat('-123', '456') as unsigned);

+-----------------------------------------+
| cast(concat('-123', '456') as unsigned) |
+-----------------------------------------+
|                    18446744073709428160 |
+-----------------------------------------+

select cast(123 + 100 as char);

+-------------------------+
| cast(123 + 100 as char) |
+-------------------------+
| 223                     |
+-------------------------+

■MySQL 編資料
■PostgreSQL 編、JAVA Servlet、JSP 編資料
■SQL 基礎編資料
■SQL 基礎実地編資料
■SQL チューニング編資料
■Oracle PL/SQL 編資料
| VB | SQL | Perl | PHP | ASP | JSP | C | PC | HP | FAQ | フリーソフト |

SAK Streets メインストリート 図書館・カフェ 一覧 SAK Streets 検索



Copyright (C) 1999-2017 Y.SAK