vlambda博客
学习文章列表

mysql表中base64格式数据查询

需求:

为了避开特殊字符(如:单引号)影响,把某些字段保存为base64格式。

SQL语句直接解码base64编码数据,直接查询出原始数据。


表中数据如下

很不直观,当根据where条件查询时,肉眼不能直接从结果提取到可读信息。

如果要把结果直接导出,直接查询出解码后的数据,就不需要再写解码程序。

对于不懂开发的人,甚至直接丢给一条SQL就可以了。



不啰嗦了,重点只有一个


CAST(from_base64(`content`) as CHAR)

上边的查询语句:

SELECT id, CAST(from_base64(`url`) as CHAR) as url, CAST(from_base64(`content`) as CHAR) as content FROM `normal_text_content_2020-08-27-17` WHERE id = 13;

Mysql中Cast()函数的简单使用:

Cast(字段名 as 转换的类型 ),其中类型可以为:

CHAR[(N)] 字符型
DATE  日期型
DATETIME  日期和时间型
DECIMAL  float型
SIGNED  int
TIME  时间型

例如表table1date 2015-11-03 15:31:26
select cast(date as signed) as date from  table1;结果如下:date 20151103153126
select cast(date as char) as date from  table1;结果如下:date 2015-11-03 15:31:26
select cast(date as datetime) as date from  table1;结果如下:date 2015-11-03 15:31:26
select cast(date as date) as date from  table1;结果如下:date 2015-11-03
select cast(date as time) as date from  table1;结果如下:date 15:31:26
这里date对应日期,time对应时间