Go for it!

モーターサイクルと自転車とキャンプの日々。

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

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

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

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

[code lang=‘sql’] mysql> SELECT DISTINCT user_agent FROM access_log WHERE ua REGEXP ‘^(docomo|up.browser|kddi|vodafone|softbank).*’; [/code]

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

[code lang=‘sql’] mysql> select TRIM(LEADING ‘x’ FROM ‘xxxtargetxxx’); +—————————————+ | TRIM(LEADING ‘x’ FROM ‘xxxtargetxxx’) | +—————————————+ | targetxxx | +—————————————+ 1 row in set (0.00 sec) [/code]

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

[code lang=‘sql’] mysql> select TRIM(TRAILING ‘x’ FROM ‘xxxtargetxxx’); +—————————————-+ | TRIM(TRAILING ‘x’ FROM ‘xxxtargetxxx’) | +—————————————-+ | xxxtarget | +—————————————-+ 1 row in set (0.00 sec) [/code]

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

[code lang=‘sql’] mysql> select TRIM(BOTH ‘x’ FROM ‘xxxtargetxxx’); +————————————+ | TRIM(BOTH ‘x’ FROM ‘xxxtargetxxx’) | +————————————+ | target | +————————————+ 1 row in set (0.00 sec) [/code] [ad#text_wide]