遍历 SQL 列中的数组
Looping through an array in SQL column
我有一个 SQL table 看起来像这样:
| ID | Value |
| --- | ----------------------------------------------------- |
| 1 | {"name":"joe", "lastname":"doe", "age":"34"} |
| 2 | {"name":"jane", "lastname":"doe", "age":"29"} |
| 3 | {"name":"michael", "lastname":"dumplings", "age":"40"}|
如何使用 SQL select 函数,select 只有“年龄”(在值列中)大于 30 的行?
谢谢。
Value
列原样包含有效的 JSON 数据。
您可以使用函数 JSON_EXTRACT()
获取年龄并通过添加 0
:
将其转换为数值
SELECT *
FROM tablename
WHERE JSON_EXTRACT(Value, "$.age") + 0 > 30;
参见demo。
我有一个 SQL table 看起来像这样:
| ID | Value |
| --- | ----------------------------------------------------- |
| 1 | {"name":"joe", "lastname":"doe", "age":"34"} |
| 2 | {"name":"jane", "lastname":"doe", "age":"29"} |
| 3 | {"name":"michael", "lastname":"dumplings", "age":"40"}|
如何使用 SQL select 函数,select 只有“年龄”(在值列中)大于 30 的行?
谢谢。
Value
列原样包含有效的 JSON 数据。
您可以使用函数 JSON_EXTRACT()
获取年龄并通过添加 0
:
SELECT *
FROM tablename
WHERE JSON_EXTRACT(Value, "$.age") + 0 > 30;
参见demo。