json提取和转换为mysql类型

pjngdqdw  于 2021-07-24  发布在  Java
关注(0)|答案(1)|浏览(243)

有没有一种方法可以将json字段转换为相应的“本机”mysql类型,而不必显式地强制转换它?
假设我有一个包含以下字段的表:


# table `test`

id INT UNSIGNED NOT NULL
json JSON NOT NULL

我插入了一些json,如下所示:

{field1: "abc", field2: 100}
{field1: "def", field2: 20}

我想按 field2 ,这是数字,但不必强制转换。考虑到这一切,似乎这应该是可能的 field2 值是json数字。这可能吗?

select * from test order by CAST(json->>'$.field2' as unsigned) desc
                            ^
                            └ Is there an alternative to doing this?
jfgube3f

jfgube3f1#

您可以使用一种巧妙的方法(乘1)隐式转换为数字,作为另一种情况:

SELECT * 
  FROM test 
 ORDER BY json->>'$.field2'*1 DESC

演示

相关问题