Merchant Center Query Language (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 運算子會區分大小寫:
運算子 | 區分大小寫 |
---|---|
= 或 != | 區分大小寫 |
(NOT) IN | 區分大小寫 |
(NOT) LIKE | 區分大小寫 |
CONTAINS (...) | 區分大小寫 |
REGEXP_MATCH | 可選兩者 |
子句
以下是您可以使用 MCQL 查詢的子句:
SELECT
SELECT
子句會擷取以半形逗號分隔的欄位清單。
您可以從所使用的檢視畫面中選取任何欄位。以下列舉幾個可選取的欄位範例:
您可以在單一要求中查詢多個欄位類型。範例如下:
SELECT
date,
marketing_method,
impressions,
clicks
FROM product_performance_view
WHERE date BETWEEN '2023-08-01' AND '2023-08-31'
FROM
FROM
子句會指定要從要求中擷取資料的資料表。您只能在 FROM
子句中指定一個欄位。所有查詢都需要 FROM
子句。
WHERE
使用 WHERE
子句篩選要求的資料。成效查詢必須使用 WHERE
子句。您可以依據所有區隔欄位進行篩選,如果您在 SELECT
子句中指定其他指標欄位,也可以依據這些欄位篩選。
以下範例使用 WHERE
,只傳回指定時間範圍 (8 月) 的曝光次數:
SELECT offer_id, impressions
FROM product_performance_view
WHERE date BETWEEN '2023-08-01' AND '2023-08-31'
您可以使用 AND
運算子,在單一查詢中依多個條件進行篩選。在完整條件之間使用 AND
,例如:WHERE marketing_method !=
"ADS" AND marketing_method != "ORGANIC"
。您無法在單一條件中使用 AND
值,例如:WHERE marketing_method != "ADS" AND
"ORGANIC"
。
以下範例會傳回 ADS
行銷方法在 8 月期間,每項商品的點擊次數 (如果點擊次數超過 100 次):
SELECT offer_id, clicks
FROM product_performance_view
WHERE clicks > 100
AND marketing_method = 'ADS'
AND date BETWEEN '2023-08-01' AND '2023-08-31'
WHERE
子句不支援 OR
,運算子會區分大小寫。如需完整的運算子清單,請參閱文法。
ORDER BY (選填)
ORDER BY
子句可讓您依指定順序擷取結果。
請依序指定 field_name
、ASC
或 DESC
的順序。您只能依據查詢的 SELECT
子句中指定的欄位排序。如果未指定,ORDER BY
的預設值為 ASC
。
下列查詢會依點擊次數排序傳回的資料列,從最高到最低:
SELECT offer_id, clicks
FROM product_performance_view
WHERE date BETWEEN '2023-08-01' AND '2023-08-31'
ORDER BY clicks DESC
您可以使用逗號分隔的清單,在 ORDER BY
子句中指定多個欄位。
舉例來說,下列查詢的結果會依 offer_id
遞增排序,然後依曝光次數遞減排序,再依點擊次數遞減排序:
SELECT offer_id, impressions, clicks
FROM product_performance_view
WHERE date BETWEEN '2020-08-01' AND '2020-08-31'
ORDER BY
offer_id,
impressions DESC,
clicks DESC
LIMIT
LIMIT
子句可讓您指定要傳回的結果數量。
以下範例會傳回 50 個結果,即使有更多資料列可用。
SELECT offer_id, impressions
FROM product_performance_view
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'
您可以使用單引號 ('
) 或雙引號 ("
) 定義日期字串。
相對時間
您可以使用 DURING
而非 BETWEEN
和 AND
,指定相對日期範圍,例如 LAST_30_DAYS
或 THIS_MONTH
:
WHERE date DURING LAST_30_DAYS
如需可用相對日期範圍的完整清單,請參閱文法。