0

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

例如:

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

在这个循环中,我逐个检查元素,这很耗时。所以请任何人都可以建议我一些想法来完成这项任务并减少所花费的时间。

4

1 回答 1

0

我认为你最好的选择是使用 unnest。太糟糕了,我们不能使用任何(数组),比如 'sp%' On well....

  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);
于 2013-11-16T06:02:27.203 回答