1

数字と文字を含む列があります。例:a5c648a6。文字のペアごとに次の文字を追加し:、変更した文字を別の列に挿入する必要があります。つまり、出力はike:a5:c6:48:aであると想定されます。:最後の文字の後に追加する必要はないことに注意してください。

4

1 に答える 1

1

これを試してください:

mysql データベースに次の関数を作成します。

DELIMITER //
CREATE FUNCTION insert2(str text, pos int, delimit varchar(124))
RETURNS text
DETERMINISTIC
BEGIN
DECLARE i INT DEFAULT 1;
DECLARE str_len INT;
DECLARE out_str text default '';
SET str_len=length(str);
WHILE(i<str_len) DO
SET out_str=CONCAT(out_str, SUBSTR(str, i,pos), delimit);
SET i=i+pos; 
END WHILE;
-- trim delimiter from end of string
SET out_str=TRIM(trailing delimit from out_str);
RETURN(out_str);
END//
DELIMITER ;

次に、MAC アドレスに変換する文字列を指定して関数を実行します。

select insert2('a5c648a6',2,':')

'a5c648a6'をデータベース列のフィールド名に置き換え、関数を実行して文字列を変換できるようになりました。

于 2012-08-26T07:55:51.667 に答える