编写脚本以在SQL中转换varchar数据

时间:2013-09-11 12:40:24

标签: mysql sql

我想编写一个转换varchar数据的SQL更新脚本。

8:0:27:e:2b:4b形式的字符串必须转换为08 00 27 0E 2B 4B

1 个答案:

答案 0 :(得分:2)

考虑一个名为a的表和一个名为fa的字段,其中包含该值,此查询将为您执行此操作:

SELECT
  UPPER(LPAD(SUBSTRING_INDEX(fa, ':', 1), 2, '0')),
  UPPER(LPAD(REPLACE(LEFT(SUBSTRING_INDEX(fa, ':', -5), 2), ':', ''), 2, '0')),
  UPPER(LPAD(REPLACE(LEFT(SUBSTRING_INDEX(fa, ':', -4), 2), ':', ''), 2, '0')),
  UPPER(LPAD(REPLACE(LEFT(SUBSTRING_INDEX(fa, ':', -3), 2), ':', ''), 2, '0')),
  UPPER(LPAD(REPLACE(LEFT(SUBSTRING_INDEX(fa, ':', -2), 2), ':', ''), 2, '0')),
  UPPER(LPAD(REPLACE(LEFT(SUBSTRING_INDEX(fa, ':', -1), 2), ':', ''), 2, '0'))
FROM a

这是一个SQL Fiddle来证明它。

现在,该查询将每个部分放在自己的字段中 - 如果您愿意,您当然可以连接这些值 - 这取决于您。