MySQL JSON 字段数据格式转换:将 List<Long> 转换为 List<Object>
<p>您可以使用 MySQL 的 JSON 函数来实现将 JSON 字段 <code>asset_list</code> 的数据格式由原来的 List<Long> 替换成 List<Object>。下面是一个示例的更新语句:</p>
<pre><code class="language-sql">UPDATE your_table
SET asset_list = JSON_REPLACE(asset_list, '$', JSON_ARRAY(JSON_OBJECT('id', JSON_EXTRACT(asset_list, '$[0]'))))
WHERE JSON_TYPE(asset_list) = 'ARRAY' AND JSON_TYPE(JSON_EXTRACT(asset_list, '$[0]')) = 'LONG';
</code></pre>
<p>这个更新语句使用了 <code>JSON_REPLACE</code> 函数来替换 JSON 字段的值。它首先使用 <code>JSON_EXTRACT</code> 函数获取原来 List<Long> 中的第一个元素的值,然后使用 <code>JSON_OBJECT</code> 函数将该值包装成一个 Object,再使用 <code>JSON_ARRAY</code> 函数将该 Object 包装成一个 Array。最后,使用 <code>JSON_REPLACE</code> 函数将原来的 List<Long> 替换成新的 List<Object>。</p>
<p>请注意,这个更新语句假设 <code>asset_list</code> 字段的原始值是一个合法的 JSON 数组,且只有一个元素。如果原始值不符合这个条件,更新语句可能会失败。您可以根据实际情况进行适当的调整。</p>
原文地址: https://www.cveoy.top/t/topic/qlcl 著作权归作者所有。请勿转载和采集!