如何在 LIKE 过滤器中使用下划线字符给我一列的所有结果

How to use an underscore character in a LIKE filter give me all the results from a column

我正在尝试在我的 where 子句中使用下划线来过滤具有类似条件的 sql 查询。但是,当我过滤时,我希望所有值都只有 TS_AW19,而不是所有包含 TS 的值,这是我的查询当前给我的。有人可以帮助我使用正确的语法来进行下面的查询吗?

SELECT 
date,
creative_name,
SUM(revenue)*2 as spend
FROM `crate-media-group-client-data.DV360_ALL.GGLDV360BM_CREATIVE_*`
WHERE advertiser LIKE '%Topshop/Topman%' AND creative_name LIKE '%TS_AW19%' AND date = '2019-09-20'
GROUP BY 1,2 
ORDER by creative_name

注意:我对此查询使用大查询语法

下划线(和百分比)在与 LIKE 一起使用时具有特殊含义,表示 任何 单个字符的通配符。要解决此问题,请从 BigQuery documentation for LIKE:

You can escape "\", "_", or "%" using two backslashes. For example, "\%". If you are using raw strings, only a single backslash is required. For example, r"\%".

您可以尝试对下划线进行两次转义,如果您希望它在您的 LIKE 表达式中是文字:

SELECT 
    date,
    creative_name,
    SUM(revenue)*2 AS spend
FROM `crate-media-group-client-data.DV360_ALL.GGLDV360BM_CREATIVE_*`
WHERE
    advertiser LIKE '%Topshop/Topman%' AND
    creative_name LIKE '%TS\_AW19%' AND
    date = '2019-09-20'
GROUP BY 1,2 
ORDER BY
    creative_name;