MySQLで正規表現、文字列のトリム

10月 24th, 2008 by key

仕事でちょろっとお勉強した内容のメモ。


■正規表現マッチ
PostgreSQLだと~演算子(正規表現)があって、MySQLにも無いものかと探していたらREGEXP演算子というのがあった。

例えばアクセスログから携帯電話のHTTP_USER_AGENTを拾うにはこんなふうにする。

mysql> SELECT DISTINCT user_agent FROM access_log WHERE ua REGEXP '^(docomo|up\.browser|kddi|vodafone|softbank).*';

■文字列のトリム
文字列の先方から特定の文字を削除する。

mysql> select TRIM(LEADING 'x' FROM 'xxxtargetxxx');
+---------------------------------------+
| TRIM(LEADING 'x' FROM 'xxxtargetxxx') |
+---------------------------------------+
| targetxxx                             |
+---------------------------------------+
1 row in set (0.00 sec)

後方から削除するにはTRAILINGにする。

mysql> select TRIM(TRAILING 'x' FROM 'xxxtargetxxx');
+----------------------------------------+
| TRIM(TRAILING 'x' FROM 'xxxtargetxxx') |
+----------------------------------------+
| xxxtarget                              |
+----------------------------------------+
1 row in set (0.00 sec)

前後両方とも削除するにはBOTHにする。

mysql> select TRIM(BOTH 'x' FROM 'xxxtargetxxx');
+------------------------------------+
| TRIM(BOTH 'x' FROM 'xxxtargetxxx') |
+------------------------------------+
| target                             |
+------------------------------------+
1 row in set (0.00 sec)

タグ: ,

0 Responses to “MySQLで正規表現、文字列のトリム”

Feed for this Entry Trackback Address
  1. コメントはまだありません

コメントをどうぞ