Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/entity-framework/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在不使用for循环的情况下,如何在postgresql中检查数组的元素是否以特定字符串开头_Postgresql - Fatal编程技术网

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

在不使用for循环的情况下,如何在postgresql中检查数组的元素是否以特定字符串开头,postgresql,Postgresql,在我的postgresql查询中,我使用for循环检查数组的元素是否以特定字符串开头。如果它以该特定字符串开头,那么我的查询将显示该元素的索引 例如: 在这个循环中,我一个元素一个元素地检查,这很耗时。因此,任何人都可以给我一些建议来完成这项任务并减少所花费的时间。我认为你最好的选择是使用unnest。很遗憾,我们不能在井上使用像“sp%”这样的任何(数组) WITH array_search AS ( select id, unnest(childrens) item

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

例如:


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

我认为你最好的选择是使用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);