Ngôn ngữ truy vấn của Merchant Center (MCQL) là một ngôn ngữ truy vấn, tương tự như SQL. Bạn có thể sử dụng MCQL với API Báo cáo của người bán để truy xuất dữ liệu hiệu suất của các sản phẩm của bạn và thị trường mà các sản phẩm đó đang cạnh tranh.
Ngữ pháp
Dưới đây là tài liệu tham khảo ngữ pháp MCQL (trong ký hiệu biểu thức chính quy):
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
Bạn có thể sử dụng các ký hiệu sau:
?
cho biết một phần tử không bắt buộc.*
có nghĩa là không hoặc nhiều hơn;+
có nghĩa là một hoặc nhiều.(xxxxxx)
biểu thị một nhóm.[a-z0-9]
biểu thị phạm vi ký tự.|
là viết tắt của "or".
Phân biệt chữ hoa chữ thường
Hầu hết các toán tử MCQL đều phân biệt chữ hoa chữ thường:
Toán tử | Độ nhạy của trường hợp |
---|---|
= hoặc != | Phân biệt chữ hoa chữ thường |
(KHÔNG) VÀO | Phân biệt chữ hoa chữ thường |
(KHÔNG) THÍCH | Phân biệt chữ hoa chữ thường |
CHỨA (...) | Phân biệt chữ hoa chữ thường |
REGEXP_MATCH | Tùy chọn cả hai |
Mệnh đề
Dưới đây là các mệnh đề mà bạn có thể truy vấn bằng MCQL:
SELECT
Mệnh đề SELECT
lấy danh sách các trường được phân tách bằng dấu phẩy để truy xuất.
Bạn có thể chọn bất kỳ trường nào trong chế độ xem mà bạn đang sử dụng. Sau đây là một số ví dụ về mà bạn có thể chọn:
Bạn có thể truy vấn nhiều loại trường trong một yêu cầu. Ví dụ:
SELECT
date,
marketingMethod,
impressions,
clicks
FROM ProductPerformanceView
WHERE date BETWEEN '2020-08-01' AND '2020-08-31'
FROM
Mệnh đề FROM
chỉ định bảng để tìm nạp dữ liệu trong yêu cầu. Bạn có thể
chỉ chỉ định một trường trong mệnh đề FROM
. Mệnh đề FROM
là bắt buộc cho
tất cả các truy vấn.
Ở ĐÂU?
Sử dụng mệnh đề WHERE
để lọc dữ liệu cho yêu cầu của bạn. Mệnh đề WHERE
là bắt buộc đối với hiệu suất
truy vấn.
Bạn có thể lọc theo tất cả
segments,
và bằng cách khác
trường chỉ số nếu
bạn chỉ định chúng trong mệnh đề SELECT
.
Dưới đây là ví dụ sử dụng WHERE
để chỉ trả về lượt hiển thị từ một đối tượng được chỉ định
khoảng thời gian (tháng 8):
SELECT offerId, impressions
FROM ProductPerformanceView
WHERE date BETWEEN '2020-08-01' AND '2020-08-31'
Bạn có thể lọc theo nhiều điều kiện trong một truy vấn bằng toán tử AND
.
Sử dụng AND
trong các điều kiện hoàn chỉnh, ví dụ: WHERE marketingMethod !=
"ADS" AND marketingMethod != "ORGANIC"
. Bạn không thể sử dụng AND
giữa các giá trị trong một
điều kiện đơn lẻ, ví dụ: WHERE marketingMethod != "ADS" AND "ORGANIC"
.
Dưới đây là ví dụ trả về số lượt nhấp trên mỗi mặt hàng, trong đó có
hơn 100 lượt nhấp đối với phương thức tiếp thị ADS
trong tháng
Tháng 8:
SELECT offerId, clicks
FROM ProductPerformanceView
WHERE clicks > 100
AND marketingMethod = 'ADS'
AND date BETWEEN '2020-08-01' AND '2020-08-31'
Mệnh đề WHERE
không hỗ trợ OR
. Toán tử có phân biệt chữ hoa chữ thường. Đối với
danh sách đầy đủ các toán tử, hãy xem ngữ pháp.
ĐẶT HÀNG THEO (không bắt buộc)
Mệnh đề ORDER BY
cho phép bạn truy xuất các kết quả theo thứ tự đã chỉ định.
Chỉ định thứ tự bằng fieldName
, sau đó là ASC
hoặc DESC
. Bạn chỉ có thể đặt hàng trước
được chỉ định trong mệnh đề SELECT
của truy vấn. Mặc định ORDER BY
là
ASC
nếu bạn không chỉ định.
Truy vấn sau sắp xếp các hàng được trả về theo số lượt nhấp, tính từ giá trị cao nhất xuống mức thấp nhất:
SELECT offerId, clicks
FROM ProductPerformanceView
WHERE date BETWEEN '2020-08-01' AND '2020-08-31'
ORDER BY clicks DESC
Bạn có thể chỉ định nhiều trường trong mệnh đề ORDER BY
bằng cách sử dụng dấu phẩy
danh sách.
Ví dụ: kết quả của truy vấn sau được sắp xếp theo thứ tự tăng dần theo
offerId
, sau đó là số lượt hiển thị theo thứ tự giảm dần, sau đó là giảm dần
sắp xếp theo số lần nhấp chuột:
SELECT offerId, impressions, clicks
FROM ProductPerformanceView
WHERE date BETWEEN '2020-08-01' AND '2020-08-31'
ORDER BY
offerId,
impressions DESC,
clicks DESC
LIMIT
Mệnh đề LIMIT
cho phép bạn chỉ định số lượng kết quả cần trả về.
Dưới đây là ví dụ chỉ trả về 50 kết quả, ngay cả khi có nhiều hàng khác.
SELECT offerId, impressions
FROM ProductPerformanceView
WHERE date BETWEEN '2020-08-01' AND '2020-08-31'
ORDER BY impressions DESC
LIMIT 50
Sử dụng trường pageSize
để xử lý các danh sách kết quả dài.
Phạm vi ngày
MCQL cho phép bạn chỉ định phạm vi ngày tuỳ chỉnh hoặc tương đối. Bạn phải sử dụng
Mệnh đề WHERE
để chỉ định một phạm vi date
cho mọi hiệu suất
truy vấn.
Điều chỉnh
Bạn có thể chỉ định ngày ISO 8601(YYYY-MM-DD) theo các định dạng sau:
date BETWEEN '2021-01-01' AND '2021-01-31'
date >= '2021-01-01' AND date <= '2021-01-31'
Bạn có thể xác định chuỗi ngày bằng dấu nháy đơn ('
) hoặc dấu ngoặc kép
("
).
Họ hàng
Bạn có thể chỉ định phạm vi ngày tương đối, chẳng hạn như LAST_30_DAYS
hoặc THIS_MONTH
,
bằng cách sử dụng DURING
thay vì BETWEEN
và AND
:
WHERE date DURING LAST_30_DAYS
Xem ngữ pháp để biết danh sách đầy đủ các phạm vi ngày tương đối có thể sử dụng.