gpt4 book ai didi

postgresql - 如何从单个字段中的多个值进行搜索(GTFS 中的公交车站)?

转载 作者:行者123 更新时间:2023-11-29 14:37:21 24 4
gpt4 key购买 nike

在丹佛的 GTFS 数据中,BUS_STOPS 表在 ROUTES 列中存储多个以逗号分隔的值:

28, 19, 44, 10, 32

我正在选择学校附近的 BUS_ROUTES。

但是要沿着这些路线选择相应的站点意味着要尝试从我上面描述的列表中找到一个公共(public)汽车站(例如服务 44 路公共(public)汽车的公共(public)汽车站)——我不确定该怎么做。

下面的评论帮助我弄清楚了按其值选择 1 条路线应该是这样的:

select * from BUS_STOPS where ROUTES like '% 44,%';

...返回其中一个列出的值中包含 44 的记录。

那么如何将静态值 44 替换为 BUS_ROUTES 表中 ROUTES 字段的值?

BUS_ROUTES 表如下所示:

enter image description here

...BUS_STOPS 表如下所示:

enter image description here

我正在使用 PostgreSQL 查询 GTFS 数据。

最佳答案

将字符串转换为数组,然后使用数组比较:

select * 
from BUS_STOPS
where '44' = any(string_to_array(routes,',')

这也可以用作连接条件:

select * 
from BUS_STOPS s
join bus_routes r on string_to_array(s.routes,',') @> string_to_array(r.routes,',')

@> 是“包含”运算符,用于测试左数组 (bus_stops.routes) 是否包含右数组 (bus_routes.routes) 中的所有元素。另一种选择是使用重叠运算符 && - 我不清楚你到底想要什么

关于postgresql - 如何从单个字段中的多个值进行搜索(GTFS 中的公交车站)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42307172/

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