遍历 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