Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/.htaccess/5.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
Google bigquery 如何根据嵌套字段上的条件更新记录?_Google Bigquery - Fatal编程技术网

Google bigquery 如何根据嵌套字段上的条件更新记录?

Google bigquery 如何根据嵌套字段上的条件更新记录?,google-bigquery,Google Bigquery,我有一个具有以下架构的bigquery表: { "fields": [ { "name": "products", "type": "RECORD", "mode": "REPEATED", "fields": [ { "name&q

我有一个具有以下架构的bigquery表:

{
  "fields": [
    {
      "name": "products",
      "type": "RECORD",
      "mode": "REPEATED",
      "fields": [
        {
          "name": "name",
          "type": "STRING",
          "mode": "REQUIRED"
        },
        {
          "name": "qty",
          "type": "INTEGER",
          "mode": "REQUIRED"
        },
        {
          "name": "variant_name",
          "type": "STRING",
          "mode": "REQUIRED"
        },
        {
          "name": "order_id",
          "type": "INTEGER",
          "mode": "REQUIRED"
        },
        {
          "name": "test_mode",
          "type": "BOOLEAN",
          "mode": "REQUIRED"
        },
        {
          "name": "amount",
          "type": "FLOAT",
          "mode": "REQUIRED"
        },
        {
          "name": "transaction_reference",
          "type": "STRING",
          "mode": "REQUIRED"
        },
        {
          "name": "id",
          "type": "INTEGER",
          "mode": "REQUIRED"
        },
        {
          "name": "source",
          "type": "STRING",
          "mode": "REQUIRED"
        },
        {
          "name": "currency",
          "type": "STRING",
          "mode": "REQUIRED"
        }
      ]
    },
    {
      "name": "processed_at",
      "type": "TIMESTAMP",
      "mode": "REQUIRED",
      "description": "bq-datetime"
    },
    {
      "name": "inserted_at",
      "type": "TIMESTAMP",
      "mode": "REQUIRED",
      "description": "bq-datetime"
    }
  ]
}
如您所见,
products
字段是一个嵌套字段。我希望实现如下更新条件:

UPDATE `dataset.table`
SET processed_at = '2021-04-17T16:07:30.993806'
WHERE processed_at = '1970-01-01T00:00:00' AND products.order_id = 9366054;
无论何时我尝试这样做,我都会得到以下错误

Cannot access field order_id on a value with type ARRAY<STRUCT<name STRING, qty INT64, variant_name STRING, ...>> 
无法访问类型为ARRAY的值上的字段order\u id
我知道,要选择具有相同逻辑的
内容,我可以使用
unest
语句,我无法将此应用于
更新

尝试:

WHERE processed_at = '1970-01-01T00:00:00'
  and EXISTS (SELECT *
              FROM UNNEST(products)
              WHERE order_id = 9366054
             );