プログラマメモ2 - programmer no memo2

EZSPLIT 2012/11/17

SQLです。
mysqlのファンクションです。
カンマ区切りの文字列中の何番目の文字列を取り出す目的で作成しました。
3〜4週間前に作成したと思うのですが、いまいちその動機を思い出せないでいます。
やばいですね....
関数名としてEZSPLITというのもいまいちだなーと思いつつ

DROP FUNCTION EZSPLIT;
delimiter //
CREATE FUNCTION EZSPLIT(s TEXT, idx INT) RETURNS TEXT
NO SQL
BEGIN
     RETURN SUBSTRING_INDEX(SUBSTRING_INDEX(CONCAT(s, ','), ',' , idx),
',' , -1);
END
//
 使い方は
こんな感じ
mysql> select EZSPLIT('a,b,c',2);
+--------------------+
| EZSPLIT('a,b,c',2) |
+--------------------+
| b                  |
+--------------------+
1 row in set (0.00 sec)

何番目かの指定は1スタートとなっています。


: