如何在 MySQL/MariaDB 中将 LONGTEXT 字段作为 JSON 返回

Posted

技术标签:

【中文标题】如何在 MySQL/MariaDB 中将 LONGTEXT 字段作为 JSON 返回【英文标题】:How to return a LONGTEXT field as JSON in MySQL/MariaDB 【发布时间】:2020-05-13 00:29:52 【问题描述】:

我有一个产品表,其中我将产品图像路径存储为 JSON 字符串(MariaDB 中的 LONGTEXT 类型),但是,当我使用 Node.js 查询数据库以获取产品列表并将数据发送到客户端时-side,它将图像路径作为字符串而不是数组对象接收。

问题:有没有办法告诉 mysql/MariaDB 将 LONGTEXT 字段作为 JSON 返回,或者我需要在 Node.js 中创建一个辅助函数来完成这项工作?

【问题讨论】:

【参考方案1】:

您可以尝试使用 convert() JSON

 CONVERT( your_long_text_col,  JSON)

测试

select concat('"', CONVERT( '"id": 1, "name": "Monty"',  JSON), '"');

【讨论】:

我试过这个:SELECT concat('"', CONVERT(imgs, JSON), '"') from products; 但是它在JSON), '"')附近抛出错误1064 你使用的是哪个版本的mysql?? ...我用过 5.7 我用的是 10.4.6-MariaDB 检查 concat 示例测试是否有效 .. 如果有效 .. 然后检查 imgs 列内容中的有效 JSON .. 如果测试无效,则您的 db 版本不支持转换为 JSON

以上是关于如何在 MySQL/MariaDB 中将 LONGTEXT 字段作为 JSON 返回的主要内容,如果未能解决你的问题,请参考以下文章

如何在Java中将String转换为long?

如何在 Scala 中将 IPv4 地址与 Long 进行转换

如何在java中将十六进制字符串转换为long?

在 Spark SQL 中将 long 类型的列转换为 calendarinterval 类型

在 Oracle 中将 LONG 转换为时间戳 [重复]

在CUDA中将类型转换为unsigned long long?