mysql如何在查询语句中将blob自动以16进制显示出来
我有一个数据库,需要查询其中的某些数据,其中的表有一些字段是int、char之类的,另一些字段是blob而且字段数量非常多,一个表约有上百个字段,所以我没有好的办法一条一...
我有一个数据库,需要查询其中的某些数据,其中的表有一些字段是int、char之类的,另一些字段是blob
而且字段数量非常多,一个表约有上百个字段,所以我没有好的办法一条一条的blob字段去加hex(),
那么问题来了,如何方便的select出来,而保证其所有blob字段都自动转换为16进制显示呢
注,最好只用sql语句实现哈 展开
而且字段数量非常多,一个表约有上百个字段,所以我没有好的办法一条一条的blob字段去加hex(),
那么问题来了,如何方便的select出来,而保证其所有blob字段都自动转换为16进制显示呢
注,最好只用sql语句实现哈 展开
1个回答
推荐于2017-05-20
展开全部
SELECT
concat(
'select ',
GROUP_CONCAT(
(
CASE
WHEN t.DATA_TYPE = 'blob' THEN
concat('HEX(', t.COLUMN_NAME, ')') THEN
t.COLUMN_NAME
END
)
),
'from #表名# '
)
FROM
information_schema.`COLUMNS` t
WHERE
t.TABLE_SCHEMA = '#数据库名#'
AND t.TABLE_NAME = '#表名#'
-- 对应替换其中的参数(#*#)则为你需要的查询sql
concat(
'select ',
GROUP_CONCAT(
(
CASE
WHEN t.DATA_TYPE = 'blob' THEN
concat('HEX(', t.COLUMN_NAME, ')') THEN
t.COLUMN_NAME
END
)
),
'from #表名# '
)
FROM
information_schema.`COLUMNS` t
WHERE
t.TABLE_SCHEMA = '#数据库名#'
AND t.TABLE_NAME = '#表名#'
-- 对应替换其中的参数(#*#)则为你需要的查询sql
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询
广告 您可能关注的内容 |