MySQL 5.5中如何创建numberofimage列统计addimage列图片数量
MySQL 5.5统计JSON数组内图片数量的实现方法
由于MySQL 5.5没有原生JSON处理函数,无法直接使用JSON_LENGTH这类工具,只能通过字符串操作来统计addimage列中JSON数组的元素数量(即图片数量),具体步骤如下:
1. 添加目标列
先给表新增numberofimage列,用于存储统计结果:
ALTER TABLE your_table_name ADD COLUMN numberofimage INT UNSIGNED DEFAULT 0;
注意替换your_table_name为实际表名
2. 计算并更新图片数量
利用字符串长度差来统计数组元素个数,核心逻辑是:JSON数组中每个图片对象以"},{"作为分隔符,统计该子串的出现次数后加1,就是总图片数。同时处理空数组、NULL等边界情况:
UPDATE your_table_name SET numberofimage = CASE WHEN addimage IS NULL OR addimage = '[]' THEN 0 ELSE LENGTH(addimage) - LENGTH(REPLACE(addimage, '},{"', '')) + 1 END;
注意事项
- 如果JSON数组存在格式差异(比如元素间有空格,如
"}, {"),需要先去除空格再统计,调整后的UPDATE语句如下:
UPDATE your_table_name SET numberofimage = CASE WHEN addimage IS NULL OR addimage = '[]' THEN 0 ELSE LENGTH(REPLACE(addimage, ' ', '')) - LENGTH(REPLACE(REPLACE(addimage, ' ', ''), '},{"', '')) + 1 END;
- 确保
addimage列的内容是标准JSON数组格式,否则统计结果可能不准确。
内容的提问来源于stack exchange,提问作者latexforti
相关产品推荐
相关产品推荐

