これらの操作は、DBではなくアプリケーションレベルで行う必要があります。しかし、あなたは本当にDBレベルからこれをやりたがっていますが、ユーザ定義関数を使って簡単に行うことができます。ここでは、この
delimiter //
create function myFunction(myString varchar(255))
returns varchar(255)
begin
declare strLen int ;
declare lookupChar char(1);
declare finalString varchar(255);
declare x int;
set strLen = length(myString);
set x = 1 ;
set finalString = '';
while x <= strLen do
set lookupChar = substring(myString,x,1);
if finalString = '' then
set finalString = lookupChar;
else
set finalString = concat(finalString,',',lookupChar);
end if;
set x = x+1;
end while;
return finalString;
end//
delimiter;
できますが、mysqlの
mysql> create table mytable (id int, value varchar(100));
Query OK, 0 rows affected (0.19 sec)
mysql> insert into mytable values (1,'AHGJTOSIYGJ'),(2,'OTPDBSKGY'),(3,'HFRYEC'),(4,'OPFKWIFS');
Query OK, 4 rows affected (0.02 sec)
mysql> select * from mytable ;
+------+-------------+
| id | value |
+------+-------------+
| 1 | AHGJTOSIYGJ |
| 2 | OTPDBSKGY |
| 3 | HFRYEC |
| 4 | OPFKWIFS |
+------+-------------+
4 rows in set (0.00 sec)
でこれを実行しないための機能は、今、今使用して値を選択することができますので、良い今のところ機能
mysql> delimiter //
mysql> create function myFunction(myString varchar(255))
-> returns varchar(255)
-> begin
-> declare strLen int ;
-> declare lookupChar char(1);
-> declare finalString varchar(255);
-> declare x int;
->
-> set strLen = length(myString);
-> set x = 1 ;
-> set finalString = '';
-> while x <= strLen do
-> set lookupChar = substring(myString,x,1);
-> if finalString = '' then
-> set finalString = lookupChar;
-> else
-> set finalString = concat(finalString,',',lookupChar);
-> end if;
-> set x = x+1;
-> end while;
-> return finalString;
-> end//
Query OK, 0 rows affected (0.00 sec)
mysql> delimiter ;
を作成することができますされます機能
mysql> select id,myFunction(value) as value from mytable ;
+------+-----------------------+
| id | value |
+------+-----------------------+
| 1 | A,H,G,J,T,O,S,I,Y,G,J |
| 2 | O,T,P,D,B,S,K,G,Y |
| 3 | H,F,R,Y,E,C |
| 4 | O,P,F,K,W,I,F,S |
+------+-----------------------+
テーブル全体でこれを行うことができますし、必要に応じて簡単に更新を行うこともできます。
[正規表現を行う方法は?](http://stackoverflow.com/questions/986826/how-to-do-a-regular-expression-replace-in-mysql) – Jens