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%' のような任意の (配列) を使用できないのは残念です。

  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 に答える