Merchant Center 查询语言 (MCQL) 是一种查询语言,类似于 SQL。您 可以将 MCQL 与 Merchant Reports API 结合使用, 检索有关您的产品及其所竞争市场的效果数据。
语法
以下是 MCQL 语法参考(采用正则表达式表示法):
Query -> SelectClause FromClause? WhereClause? OrderByClause? LimitClause?
SelectClause -> SELECT FieldName (, FieldName)*
FromClause -> FROM TableName
WhereClause -> WHERE Condition (AND Condition)*
OrderByClause -> ORDER BY Ordering (, Ordering)*
LimitClause -> LIMIT PositiveInteger
Condition -> FieldName Operator Value | FieldName BETWEEN Value AND Value
Operator -> = | != | > | >= | < | <= | <> | IN | NOT IN |
CONTAINS ANY | CONTAINS ALL | CONTAINS NONE | DURING |
LIKE | NOT LIKE | REGEXP_MATCH | NOT REGEXP_MATCH
Value -> Number | NumberList | String | StringList | Function
Ordering -> FieldName (ASC | DESC)?
FieldName -> [a-z] ([a-zA-Z0-9._])*
TableName -> [A-Z] ([a-zA-Z_])*
StringList -> ( String (, String)* )
NumberList -> ( Number (, Number)* )
PositiveInteger -> [1-9] ([0-9])*
Number -> -? [0-9]+ (. [0-9] [0-9]*)?
String -> (' Char* ') | (" Char* ")
Function -> LAST_14_DAYS | LAST_30_DAYS | LAST_7_DAYS |
LAST_BUSINESS_WEEK | LAST_MONTH | LAST_WEEK_MON_SUN |
LAST_WEEK_SUN_SAT | THIS_MONTH | THIS_WEEK_MON_TODAY |
THIS_WEEK_SUN_TODAY | TODAY | YESTERDAY
您可以使用以下符号:
?
表示可选元素。*
表示零个或更多个;+
表示一个或多个。(xxxxxx)
表示分组。[a-z0-9]
表示字符范围。|
代表“或”。
大小写区分
大多数 MCQL 运算符都区分大小写:
运算符 | 区分大小写 |
---|---|
= 或 != | 区分大小写 |
(非)IN | 区分大小写 |
(非)赞 | 区分大小写 |
包含 (...) | 区分大小写 |
REGEXP_MATCH | (可选) |
条款
以下是您可以使用 MCQL 查询的子句:
选择
SELECT
子句接受要检索的字段的英文逗号分隔列表。
您可以从正在使用的视图中选择任何字段。这里给出了一些示例 字段:
您可以在单个请求中查询多个字段类型。示例如下:
SELECT
date,
marketingMethod,
impressions,
clicks
FROM ProductPerformanceView
WHERE date BETWEEN '2020-08-01' AND '2020-08-31'
FROM
FROM
子句在请求中指定要从中提取数据的表。您可以
在 FROM
子句中只能指定一个字段。对于以下查询,必须使用 FROM
子句:
所有查询。
WHERE
使用 WHERE
子句过滤请求的数据。WHERE
子句
是实现性能的必要条件
查询。
您可以按全部
segments 字段不同,
其他
metrics字段
并在 SELECT
子句中指定它们。
下例使用 WHERE
仅从指定的
时间段(8 月):
SELECT offerId, impressions
FROM ProductPerformanceView
WHERE date BETWEEN '2020-08-01' AND '2020-08-31'
您可以使用 AND
运算符在单个查询中按多个条件进行过滤。
在完整条件之间使用 AND
,例如:WHERE marketingMethod !=
"ADS" AND marketingMethod != "ORGANIC"
。您不能在两个值之间使用 AND
,
单个条件,例如 WHERE marketingMethod != "ADS" AND "ORGANIC"
。
下面这个示例返回了每项商品的点击次数,其中
对于“ADS
”营销方式,在本月
8 月:
SELECT offerId, clicks
FROM ProductPerformanceView
WHERE clicks > 100
AND marketingMethod = 'ADS'
AND date BETWEEN '2020-08-01' AND '2020-08-31'
WHERE
子句不支持 OR
。运算符区分大小写。对于
运算符的完整列表,请参阅语法。
ORDER BY(可选)
ORDER BY
子句可让您按指定顺序检索结果。
请先按 fieldName
指定顺序,然后按 ASC
或 DESC
指定。您只能按以下方式订购:
查询 SELECT
子句中指定的字段。ORDER BY
默认为
ASC
(如果未指定)。
以下查询按点击次数从高到低对返回的行进行排序 从低到高:
SELECT offerId, clicks
FROM ProductPerformanceView
WHERE date BETWEEN '2020-08-01' AND '2020-08-31'
ORDER BY clicks DESC
您可以使用英文逗号分隔的 ORDER BY
子句中指定多个字段
列表。
例如,以下查询的结果按
offerId
,然后按展示次数降序排列,最后按降序
按点击次数排序:
SELECT offerId, impressions, clicks
FROM ProductPerformanceView
WHERE date BETWEEN '2020-08-01' AND '2020-08-31'
ORDER BY
offerId,
impressions DESC,
clicks DESC
LIMIT
LIMIT
子句用于指定要返回的结果数。
下面是一个仅返回 50 个结果的示例,即使还有更多行可用也是如此。
SELECT offerId, impressions
FROM ProductPerformanceView
WHERE date BETWEEN '2020-08-01' AND '2020-08-31'
ORDER BY impressions DESC
LIMIT 50
使用 pageSize
字段处理较长的结果列表。
日期范围
通过 MCQL,您可以指定自定义或相对日期范围。您必须使用
WHERE
子句,用于指定所有性能的 date
范围
查询。
自定义
您可以采用以下格式指定 ISO 8601(YYYY-MM-DD) 日期:
date BETWEEN '2021-01-01' AND '2021-01-31'
date >= '2021-01-01' AND date <= '2021-01-31'
您可以使用单引号 ('
) 或双引号定义日期字符串
("
)。
相对
您可以指定相对日期范围,例如 LAST_30_DAYS
或 THIS_MONTH
。
使用 DURING
(而非 BETWEEN
和 AND
):
WHERE date DURING LAST_30_DAYS
有关可用相对日期范围的完整列表,请参阅语法。