在我的postgresql查询中使用for循环检查数组的元素是否以特定字符串开头。如果它以该特定字符串开头,那么我的查询将显示该元素的索引。
例如:
FOR i in 1..array_length(array[childrens],2) LOOP -- childrens is the array
IF position('SP' in childrens[i]) != 0 THEN
......
在这个循环中,我逐个元素地检查是非常耗时的。所以,任何人都可以建议我做一些这样的任务并减少所花费的时间。
答案 0 :(得分:0)
我认为你最好的选择就是使用免费的。太糟糕了,我们不能像'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);