みんなの為のMySQLまとめ（１１）

参考
http://homepage2.nifty.com/sak/w_sak3/doc/sysbrd/mysql_14.htm

###■文字列連結

  ・文字列結合は concat() を使用する。
  
>```
select concat(123456, 789012);
```
```
select concat('123456', 789012);
```
```
select concat('123456', '789012');
```
![kobito.1424076674.726258.png](https://qiita-image-store.s3.amazonaws.com/0/59354/aea00903-c3d0-5293-c02e-2688ad188492.png "kobito.1424076674.726258.png")

>```
select concat(key1, data1) from testm;
```
![kobito.1424076884.515329.png](https://qiita-image-store.s3.amazonaws.com/0/59354/cff8c9b4-551a-81e5-d454-2ea094bf2399.png "kobito.1424076884.515329.png")

###■小文字化

  ・lower() 関数は、英字を小文字にして返す。
  
>```
select lower('ABC012');
```
![kobito.1424077051.489032.png](https://qiita-image-store.s3.amazonaws.com/0/59354/a5c0f147-d89f-91bf-c331-afad589b6c67.png "kobito.1424077051.489032.png")

###■大文字化

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

>```
select upper('abc012');
```
![kobito.1424077144.228573.png](https://qiita-image-store.s3.amazonaws.com/0/59354/fa337b84-01eb-49f3-32b7-92a86377ce66.png "kobito.1424077144.228573.png")

###■左文字埋め

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

>```
select lpad('abc', 6, '0');
```
![kobito.1424158849.995757.png](https://qiita-image-store.s3.amazonaws.com/0/59354/d4952c73-2acb-71ce-df9d-71f13c7119dd.png "kobito.1424158849.995757.png")

>```
select lpad('abc', 5, '012');
```
![kobito.1424158965.172799.png](https://qiita-image-store.s3.amazonaws.com/0/59354/f5bcc85a-1139-424a-61c6-de5d000f51d3.png "kobito.1424158965.172799.png")

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

>```
select lpad('abc', 5, ' ');
```
![kobito.1424159074.568815.png](https://qiita-image-store.s3.amazonaws.com/0/59354/66a5ac48-f928-3ed5-f767-3f79fca631fc.png "kobito.1424159074.568815.png")

###■右文字埋め

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

>```
select rpad('abc', 5, '0');
```
![kobito.1424159152.325145.png](https://qiita-image-store.s3.amazonaws.com/0/59354/e543d309-46b3-849f-d3c4-22a37aee679f.png "kobito.1424159152.325145.png")

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

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

###■左空白削除

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

>```
select ltrim('          abc');
```
![kobito.1424159385.417935.png](https://qiita-image-store.s3.amazonaws.com/0/59354/88fe2b5f-f487-39e9-c1ce-ef067f691ca0.png "kobito.1424159385.417935.png")


###■右空白削除

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

>```
select ltrim('abc          ');
```

###■左右空白削除

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

>```
select trim('          abc          ');
```
![kobito.1424159496.052376.png](https://qiita-image-store.s3.amazonaws.com/0/59354/6e7ec009-c108-8580-760a-b876d05e63e6.png "kobito.1424159496.052376.png")

###■文字列置き換え

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

>```
select replace('a0a1a2', 'a0', 'b1');
```
![kobito.1424159575.131235.png](https://qiita-image-store.s3.amazonaws.com/0/59354/cc09fd4c-254d-ed9f-0782-63135427c631.png "kobito.1424159575.131235.png")

###■文字列切り出し

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

>```
select substring('abc012', 3, 3);
```
![kobito.1424159744.083964.png](https://qiita-image-store.s3.amazonaws.com/0/59354/64c1b564-9c8d-fb45-ee2e-2d75c5b8b60a.png "kobito.1424159744.083964.png")

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

>```
select substring('abc012', 3);
```
![kobito.1424159836.364778.png](https://qiita-image-store.s3.amazonaws.com/0/59354/8a046e81-644c-74f3-e5d4-cffcf3b35a81.png "kobito.1424159836.364778.png")

###■文字列検索

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

>```
select locate('01', 'abc012');
```
![kobito.1424159935.552824.png](https://qiita-image-store.s3.amazonaws.com/0/59354/261cfdc0-0d10-56bd-f1e5-61e8c75437d4.png "kobito.1424159935.552824.png")

>```
select locate('c0', 'abc012c0', 4);
```
![kobito.1424160193.401660.png](https://qiita-image-store.s3.amazonaws.com/0/59354/17f9f575-37fb-c87e-4243-cc885cea3ba2.png "kobito.1424160193.401660.png")

###■文字列の長さ

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

>```
select length('abc012');
```
![kobito.1424160256.408397.png](https://qiita-image-store.s3.amazonaws.com/0/59354/c8d5e0e4-c6e5-1993-46e1-9d3b367dc111.png "kobito.1424160256.408397.png")

###■文字列繰り返し

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

>```
select repeat('abc012', 3);
```
![kobito.1424160338.860056.png](https://qiita-image-store.s3.amazonaws.com/0/59354/a99d125e-e32b-8529-5402-5719da76e3ea.png "kobito.1424160338.860056.png")

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

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

>```
select concat(123456, 789012);
```
```
select concat('123456', 789012);
```
```
select concat('123456', '789012');
```
![kobito.1424160468.676834.png](https://qiita-image-store.s3.amazonaws.com/0/59354/a5412845-a396-d245-ac4d-901980989bc7.png "kobito.1424160468.676834.png")

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

>```
select format(123456, 0);
```

###■文字列から数値へ変換

  ・自動でしてくれます。

>```
select '0123' + 100;
```
```
select '0123' + '100';
```
![kobito.1424160615.563993.png](https://qiita-image-store.s3.amazonaws.com/0/59354/2da5efb9-1f53-8c46-73dc-d5052a7eae56.png "kobito.1424160615.563993.png")