如何将MySQL JSON数组中的字符串值转换为大写?

时间:2018-09-25 21:54:32

标签: mysql json

我有一个包含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。

1 个答案:

答案 0 :(得分:1)

您需要使用JSON casting。请尝试以下操作:

UPDATE users 
SET profile = JSON_SET(
  profile, 
  '$.countriesVisited', 
  CAST(
    UPPER(profile->'$.countriesVisited') 
    AS JSON
  )
);