MySQL 5.7中JSON列的最大大小
在MySQL 5.7数据库中给定此表MySQL 5.7中JSON列的最大大小,mysql,Mysql,在MySQL 5.7数据库中给定此表mydb: CREATE TABLE `foo` ( `id` int(11) NOT NULL AUTO_INCREMENT, `stuff` json DEFAULT NULL, PRIMARY KEY (`id`) ) 如何获得stuff列中数据的最大大小?不是最大可能大小,而是表中所有行的最大当前大小。我曾尝试从foo中选择max(JSON_STORAGE_SIZE(stuff)),但我得到了错误错误1305(42000):函数mydb
mydb
:
CREATE TABLE `foo` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`stuff` json DEFAULT NULL,
PRIMARY KEY (`id`)
)
如何获得
stuff
列中数据的最大大小?不是最大可能大小,而是表中所有行的最大当前大小。我曾尝试从foo中选择max(JSON_STORAGE_SIZE(stuff)),但我得到了错误错误1305(42000):函数mydb.JSON_STORAGE_SIZE不存在
您可以通过将其作为字符串查询来获得大致长度:
SELECT MAX(LENGTH(stuff)) FROM foo
但这可能与JSON\u STORAGE\u SIZE()
不匹配
MySQL 5.7.22中添加了JSON\u STORAGE\u SIZE()
函数。如果您的版本较旧,除非升级,否则无法使用该功能
您看到的错误表明MySQL不知道它是一个内置函数,因此它试图执行它,就像您创建了一个使用该名称的存储函数一样。可能是
length
和sum
?max
函数返回最大值,而不是长度/大小。