gpt4 book ai didi

mysql JSON 左连接

转载 作者:行者123 更新时间:2023-11-29 07:04:44 25 4
gpt4 key购买 nike

TABLE streams;

+----+----------+-------------------------------------------------------------+-------------+-------------+
| id | name | stream | server | bouquet |
+----+----------+-------------------------------------------------------------+-------------+-------------+
| 1 | HOME | ["http://ur11.com/", "http://ur12.com/"] | ["1", "3"] | ["3","2"] |
+----+----------+-------------------------------------------------------------+-------------+-------------+

TABLE servers;

+----+-------------------+
| id | server |
+----+-------------------+
| 1 | Main |
| 2 | Server #1 |
| 3 | Server #2 |
| 4 | Server #3 |
| 5 | Server #4 |
+----+-------------------+

我需要在表流上运行 LEFT JOIN 并使用servers.server 的streams.server 值中的第一个索引进行检索:

例如,我需要左连接才能获得此结果:

+----+----------+-------------------------------------------------------------+-------------+-------------+
| id | name | stream | server | bouquet |
+----+----------+-------------------------------------------------------------+-------------+-------------+
| 1 | HOME | ["http://ur11.com/", "http://ur12.com/"] | Main | ["3","2"] |
+----+----------+-------------------------------------------------------------+-------------+-------------+

所以重点是从streams.server中获取第一个索引,其值为1,然后在servers.id上左连接以获取servers.server名称,在本例中为Main

我安装了 mysql 5.7 版本,其中包含 JSON 支持,但我不知道如何在 JSON 字段类型上使用 LEFT JOIN?

最佳答案

我使用您的上述解决方案使其正常工作:

select s.*, se.server
from streams s left join
servers se
on se.id = CAST(json_extract(s.server, '$[0]') AS UNSIGNED);

谢谢。

关于mysql JSON 左连接,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42177675/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com