mysql - MySQL 5.7 中 JSON 列的最大大小
问题描述
鉴于 MySQL 5.7 数据库中的此表mydb
:
CREATE TABLE `foo` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`stuff` json DEFAULT NULL,
PRIMARY KEY (`id`)
)
如何获得stuff
列中数据的最大大小?不是最大可能大小,而是表中所有行的最大当前大小。我试过SELECT max(JSON_STORAGE_SIZE(stuff)) from foo
了,但我得到了错误ERROR 1305 (42000): FUNCTION mydb.json_storage_size does not exist
。
解决方案
您可以通过将其作为字符串查询来获得近似长度:
SELECT MAX(LENGTH(stuff)) FROM foo
这可能不匹配JSON_STORAGE_SIZE()
。
该JSON_STORAGE_SIZE()
功能是在 MySQL 5.7.22 中添加的。如果您有旧版本,则除非升级,否则无法使用该功能。
您看到的错误表明 MySQL 不知道它是一个内置函数,因此它正在尝试执行它,就好像您已经使用该名称创建了一个存储函数一样。
推荐阅读
- amazon-web-services - 为什么 AWS Lambda 函数非常适合 IOT 应用程序?
- java - 为什么 Map.entry::getKey 和 Map.entry::getValue 在流中对 hashmap 进行排序时不起作用?
- powershell - 对话 yammer 源 webpart 动态更新主题 ID(SharePoint 在线新式页面)
- javascript - 谷歌表格脚本代码根据具有任何值的行发送电子邮件(一次)
- python - 如何仅从时间戳中提取日期?
- windows-10 - PC 启动时浏览器中的“受 reCAPTCHA 保护”消息
- json - 为什么在 Flutter 的下一个屏幕上变量的值为 null?
- java - 任何逻辑。空指针异常。执行离散事件时出错
- c# - FileSystemWatcher 在作为 Release 运行时无法从两个目录获取事件
- regex - 如何从配置文件中选择部分