Merchant Center Query Language

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 cùng với API Báo cáo của người bán để truy xuất dữ liệu về hiệu suất của các sản phẩm và thị trường mà 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; + có nghĩa là một hoặc nhiều.
  • (xxxxxx) biểu thị một nhóm.
  • [a-z0-9] biểu thị các 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ử Phân biệt chữ hoa chữ thường
= 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 Không bắt buộc cả hai

Điều khoản

Dưới đây là những mệnh đề bạn có thể truy vấn bằng MCQL:

SELECT

Mệnh đề SELECT nhận 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. Dưới đây là một số ví dụ về các trường 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 chỉ có thể chỉ định một trường trong mệnh đề FROM. Mệnh đề FROM là bắt buộc đối với mọi 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 cho các truy vấn hiệu suất. Bạn có thể lọc theo tất cả các trường phân đoạn và theo các trường metrics bổ sung nếu bạn chỉ định các trường đó trong mệnh đề SELECT.

Dưới đây là một ví dụ sử dụng WHERE để chỉ trả về các lượt hiển thị từ một khoảng thời gian nhất định (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 giữa 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 duy nhất, 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 (có hơn 100 lượt nhấp) cho phương thức tiếp thị ADS trong 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. Các toán tử có phân biệt chữ hoa chữ thường. Để xem 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.

Hãy chỉ định thứ tự theo fieldName, sau đó là ASC hoặc DESC. Bạn chỉ có thể sắp xếp theo các trường được chỉ định trong mệnh đề SELECT của truy vấn. ORDER BY mặc định là ASC nếu bạn không chỉ định.

Truy vấn sau đây sắp xếp các hàng được trả về theo số lượt nhấp, từ cao nhất đến 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 danh sách được phân tách bằng dấu phẩy.

Ví dụ: kết quả của truy vấn sau được sắp xếp theo thứ tự tăng dần offerId, sau đó theo thứ tự giảm dần theo số lượt hiển thị, rồi theo thứ tự giảm dần theo số lượt nhấp:

SELECT offerId, impressions, clicks
FROM ProductPerformanceView
WHERE date BETWEEN '2020-08-01' AND '2020-08-31'
ORDER BY
  offerId,
  impressions DESC,
  clicks DESC

GIỚI HẠN

Mệnh đề LIMIT cho phép bạn chỉ định số lượng kết quả cần trả về.

Dưới đây là một ví dụ chỉ trả về 50 kết quả, ngay cả khi có nhiều hàng hơn.

SELECT offerId, impressions
FROM ProductPerformanceView
WHERE date BETWEEN '2020-08-01' AND '2020-08-31'
ORDER BY impressions DESC
LIMIT 50

Dùng trường pageSize để xử lý các danh sách kết quả dài.

Các phạm vi ngày

MCQL cho phép bạn chỉ định phạm vi ngày tuỳ chỉnh hoặc phạm vi ngày có liên quan. Bạn phải sử dụng mệnh đề WHERE để chỉ định phạm vi date cho tất cả các truy vấn hiệu suất.

Đ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 ngoặc đơn (') hoặc dấu ngoặc kép (").

Họ hàng

Bạn có thể chỉ định một 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ì BETWEENAND:

WHERE date DURING LAST_30_DAYS

Hãy 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.