如何在大查询表的所有列中搜索某个关键词?

Gop*_*eni 2 keyword google-bigquery

我正在使用大查询来查看我的谷歌云中的数据。我想在特定表的所有列中搜索关键字。

例如:我正在搜索迪拜。我需要任何列中出现迪拜一词的条目结果。

Mik*_*ant 6

以下是 BigQuery 标准 SQL,并假设列名称不包含搜索词(也可以进行调整以解决此问题)

#standardSQL
SELECT *
FROM `yourproject.yourdataset.yourtable` t
WHERE REGEXP_CONTAINS(LOWER(TO_JSON_STRING(t)), r'dubai')
Run Code Online (Sandbox Code Playgroud)

您可以使用下面的虚拟数据来测试/玩上面的内容

#standardSQL
WITH `yourproject.yourdataset.yourtable` AS (
  SELECT 1 id, 'Los Angeles' col1, 'New York' col2 UNION ALL
  SELECT 2, 'Dubai', 'San Francisco' UNION ALL
  SELECT 3, 'atlanta', 'dubai' UNION ALL
  SELECT 4, 'I love Dubai', 'Me too'
)
SELECT *
FROM `yourproject.yourdataset.yourtable` t
WHERE REGEXP_CONTAINS(LOWER(TO_JSON_STRING(t)), r'dubai')
Run Code Online (Sandbox Code Playgroud)

希望以上内容可以成为您应用到您的具体案例的良好起点

但请注意:成本是扫描整个表 - 因此在运行读取(希望是大)数据之前检查成本:o)