我需要以json格式从表中获取值,直接使用mysql查询(在应用程序级别没有php等处理后处理)。该表的大多数字段都是整数,并且为记录构建json字符串并不困难,但是一列是text
类型,我包含所有垃圾。
是否可以stringify
文本类型列数据构建有效的json字符串?
查询:
select concat('var sp_json= [',
group_concat(
'{"sp_no":',sp_no,',
"sp_group_no":',sp_group_no,',
"sp_weight":',sp_weight,',
"dg_list":[',dg_list,'],
"comments":\'',coalesce(comments,''),'\'}'
order by sp_group_no
),
']') as sp_json
from sp_dg where pm_id=1 group by pm_id
这会输出javascript json对象等
var sp_json=[{},,,]
如果有的话,我需要使用内置的mysql函数对comments
进行字符串化。请分享您的想法。
答案 0 :(得分:0)
考虑将MySQL's String REPLACE
function与this SO answer中的概念一起使用。
E.g。 (SQL):
REPLACE(
REPLACE(
coalesce(comments,''),'\\','\\\\'
),'"','\\"'
)