mysql - 如何在SQL中查询字典类型列值?

标签 mysql sql

我有一个看起来像这样的表格:

uuid  investors
1     [{"type": "Organization", "uuid": "435847ec34f541c3b66615de1f346534"}, {"type": "Organization", "uuid": "8bad8a2d97ba4d3c716686244058858e"}]
2     [{"type": "Person", "uuid": "9603633439264ebfb3e46e6052055893"}, {"type": "Organization", "uuid": "a3734663f2d34893afeeda74da26683a"}]

我想根据investors列列表中的uuid查询它是否是OrganizationPerson > 因为我稍后必须在这些表中查找那些 uuid

编辑

感谢@tcadidot0的回答,我现在可以获得包含type值和uuid值的两列。这是结果的屏幕截图。现在,根据 type,我想访问相应的表并获取具有该特定 uuid 的整行。以下是表格、组织人员 的外观:

组织表

uuid                              name
435847ec34f541c3b66615de1f346534  XYZ

人员表

uuid                              name
9603633439264ebfb3e46e6052055893  Bob

enter image description here

最佳答案

我看到您的数据是JSON。尝试这个查询:

SELECT JSON_EXTRACT(investors, '$**.uuid') AS `uuid`,
       JSON_EXTRACT(investors, '$**.type') AS `Type`
FROM   mytable;

就像这个 fiddle :https://www.db-fiddle.com/f/8roowVBt5VY6AebWHav9hb/1

我从这里得到了部分答案:https://stackoverflow.com/a/45671728/10910692

关于mysql - 如何在SQL中查询字典类型列值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60560254/

相关文章:

php - 通过从下拉列表中选择字段名称来显示mysql表的字段数据

php - 使用 PHP 从 Mysql 检索 Mktime 值

MySql 数据库使用内连接选择计数(列)

mysql - 我应该如何在数据库中存储域名标签?

mysql - 通过连接 3 个表来更新一个表

php - 跟踪最后访问的页面

sql - 如何计算 SQL XML 中节点的出现次数?

java - 在java中使用sql创建登录

sql - 每行或每条语句的 MERGE 语句唯一索引/约束验证?

mysql - 使用带有 sum 的内连接时出现问题