栃木県のJavaエンジニア、WEBプログラマーのためのサイト

2018.07.30MySQL で全角数字を半角数字に変換する

MySQLで数字を半角に置換したいと思ったが、
関数がなかったので自作してみました。


FUNCTION IF EXISTS numzen2han;
DELIMITER //
CREATE FUNCTION numzen2han (data TEXT) RETURNS TEXT DETERMINISTIC
BEGIN
DECLARE num_len INT(2);
DECLARE num_han VARCHAR(14) DEFAULT '1234567890-,.';
DECLARE num_zen VARCHAR(14) DEFAULT '1234567890ー、.';
SET num_len = CHAR_LENGTH(num_zen);
WHILE num_len > 0 DO
SET data = REPLACE(data, SUBSTRING(num_zen,num_len,1), SUBSTRING(num_han,num_len,1));
SET num_len = num_len - 1;
END WHILE;
RETURN data;
END;
//
DELIMITER ;

この記事について
  • スッキリ (0)
  • 普通 (0)
  • 消化不良 (3)