【发布时间】:2018-07-03 00:29:21
【问题描述】:
我正在使用大查询来查看我的谷歌云中的数据。我想在特定表的所有列中搜索关键字。
例如:我正在寻找迪拜。我需要任何列中出现迪拜单词的条目的结果。
【问题讨论】:
-
这看起来更像是一个叙述性的要求。您的研究/代码/努力在哪里?
我正在使用大查询来查看我的谷歌云中的数据。我想在特定表的所有列中搜索关键字。
例如:我正在寻找迪拜。我需要任何列中出现迪拜单词的条目的结果。
【问题讨论】:
下面是 BigQuery 标准 SQL 并假设列名不包含搜索词(也可以调整以解决这个问题)
#standardSQL
SELECT *
FROM `yourproject.yourdataset.yourtable` t
WHERE REGEXP_CONTAINS(LOWER(TO_JSON_STRING(t)), r'dubai')
您可以使用下面的虚拟数据测试/玩上面的内容
#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')
希望以上内容可以成为您申请特定案例的良好起点
但请注意:成本是整个表的扫描 - 所以在运行读取(希望是大)数据之前检查成本:o)
【讨论】: