在不使用for循环的情况下,如何在postgresql中检查数组的元素是否以特定字符串开头
在我的postgresql查询中,我使用for循环检查数组的元素是否以特定字符串开头。如果它以该特定字符串开头,那么我的查询将显示该元素的索引 例如:在不使用for循环的情况下,如何在postgresql中检查数组的元素是否以特定字符串开头,postgresql,Postgresql,在我的postgresql查询中,我使用for循环检查数组的元素是否以特定字符串开头。如果它以该特定字符串开头,那么我的查询将显示该元素的索引 例如: 在这个循环中,我一个元素一个元素地检查,这很耗时。因此,任何人都可以给我一些建议来完成这项任务并减少所花费的时间。我认为你最好的选择是使用unnest。很遗憾,我们不能在井上使用像“sp%”这样的任何(数组) WITH array_search AS ( select id, unnest(childrens) item
在这个循环中,我一个元素一个元素地检查,这很耗时。因此,任何人都可以给我一些建议来完成这项任务并减少所花费的时间。我认为你最好的选择是使用unnest。很遗憾,我们不能在井上使用像“sp%”这样的任何(数组)
WITH array_search AS (
select id, unnest(childrens) item
from mytable
where item like 'SP%';
)
SELECT * FROM my_table WHERE id in (select id from array_search);
一些测试数据会更好。我认为您可以使用与我在回答您的另一个问题时所显示的相同的解决方案来解决此问题:您可以在外部查询中使用
=1
,而不是使用,如“%SP%”
WITH array_search AS (
select id, unnest(childrens) item
from mytable
where item like 'SP%';
)
SELECT * FROM my_table WHERE id in (select id from array_search);