2007年6月28日木曜日

MySQLでURLからドメイン部分を抜き出す方法

 MySQLに保存したURL(URI)からドメイン部分だけを抜き出す方法。いろいろやり方はあるが、SUBSTRING_INDEX()を使うのが一番簡単(スマート)そう。

SELECT SUBSTRING_INDEX('http://mysql.com/foo', '/', 3)

http://mysql.com
 スキーム(httpとかhttpsの部分)も取りたいなら、SUBSTRING_INDEX()をもう一つかましてやる。
SELECT SUBSTRING_INDEX(SUBSTRING_INDEX('http://mysql.com/foo', '/', 3), '/', -1)

mysql.com
 最後の引数がマイナスの場合、デリミタ(2つ目の引数で指定した文字)を右から数える。

 頻繁に使うならユーザー関数にすると使いやすいかも。そんなに使わないか。

参考:MySQL AB :: MySQL 4.1 リファレンスマニュアル :: 6.3.2 文字列関数

関連記事:
 MySQLのプレペアードステートメントはメモリレベルか?
 MySQLのデフォルトのストレージエンジンがInnoDBになる
 MySQL Query Browser がとても便利
 PostgreSQLのUPDATEの実態と、MySQLを早くする方法

0 件のコメント:

ブログ アーカイブ

tags