我有一个包含JSON列的表,其中包含JSON数组:
mysql> SELECT profile->'$.countriesVisited' from users;
+-------------------------------+
| profile->'$.countriesVisited' |
+-------------------------------+
| ["us", "il"] |
| ["co", "ph"] |
+-------------------------------+
2 rows in set (0.00 sec)
我想将数组内的值转换为大写。 (我认为这个答案还将有助于小写字母,字符串替换等。)
我一直在尝试使用UPPER,JSON_ARRAY,JSON_QUOTE,JSON_UNQUOTE等-充其量只能以所需的字符串表示形式结束。
我该怎么做?我正在运行MySQL 5.7.19。
答案 0 :(得分:1)
您需要使用JSON casting。请尝试以下操作:
UPDATE users
SET profile = JSON_SET(
profile,
'$.countriesVisited',
CAST(
UPPER(profile->'$.countriesVisited')
AS JSON
)
);