不使用for循环如何检查数组的元素是否以postgresql中的特定字符串开头

时间:2013-09-13 08:41:16

标签: postgresql

在我的postgresql查询中使用for循环检查数组的元素是否以特定字符串开头。如果它以该特定字符串开头,那么我的查询将显示该元素的索引。

例如:

FOR  i in 1..array_length(array[childrens],2) LOOP  -- childrens is the array
    IF position('SP' in childrens[i]) != 0 THEN
  ......

在这个循环中,我逐个元素地检查是非常耗时的。所以,任何人都可以建议我做一些这样的任务并减少所花费的时间。

1 个答案:

答案 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);