Merchant Center Query Language

ภาษาการค้นหาของ 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

คุณสามารถใช้สัญลักษณ์ต่อไปนี้

  • ? หมายถึงองค์ประกอบที่ไม่บังคับ
  • * หมายถึง 0 ขึ้นไป + หมายถึง 1 หรือมากกว่า
  • (xxxxxx) หมายถึงการจัดกลุ่ม
  • [a-z0-9] หมายถึงช่วงอักขระ
  • | ย่อมาจาก "or"

การคำนึงถึงตัวพิมพ์เล็กและตัวพิมพ์ใหญ่

โอเปอเรเตอร์ MCQL ส่วนใหญ่คำนึงถึงตัวพิมพ์เล็กและตัวพิมพ์ใหญ่ ดังนี้

โอเปอเรเตอร์ การคำนึงถึงตัวพิมพ์เล็กและตัวพิมพ์ใหญ่
= หรือ != พิจารณาตัวพิมพ์เล็กและใหญ่
(ไม่ใช่) อินเดีย พิจารณาตัวพิมพ์เล็กและใหญ่
(ไม่ชอบ) พิจารณาตัวพิมพ์เล็กและใหญ่
มี (...) พิจารณาตัวพิมพ์เล็กและใหญ่
REGEXP_MATCH เลือกได้ทั้งคู่

ข้อ

ต่อไปนี้คือข้อกำหนดที่คุณค้นหา MCQL ได้

SELECT

อนุประโยค SELECT จะใช้รายการช่องที่คั่นด้วยคอมมาเพื่อเรียกข้อมูล

คุณสามารถเลือกฟิลด์ใดก็ได้จากมุมมองที่ใช้อยู่ ตัวอย่างช่องบางส่วนที่คุณเลือกได้มีดังนี้

คุณสามารถค้นหาฟิลด์ได้หลายประเภทในคำขอเดียว ตัวอย่าง

SELECT
  date,
  marketingMethod,
  impressions,
  clicks
FROM ProductPerformanceView
WHERE date BETWEEN '2020-08-01' AND '2020-08-31'

จาก

วรรค FROM จะระบุตารางที่จะดึงข้อมูลในคำขอ คุณสามารถระบุได้เพียง 1 ช่องในอนุประโยค FROM ต้องระบุอนุประโยค FROM สำหรับคำค้นหาทั้งหมด

ที่ไหน

ใช้อนุประโยค WHERE เพื่อกรองข้อมูลสำหรับคำขอของคุณ คุณต้องระบุอนุประโยค WHERE สำหรับการค้นหาประสิทธิภาพ คุณกรองตามช่องกลุ่มทั้งหมดและตามช่องmetricsเพิ่มเติมได้หากระบุไว้ในอนุประโยค SELECT

ตัวอย่างที่ใช้ WHERE เพื่อแสดงการแสดงผลจากระยะเวลาที่ระบุ (เดือนสิงหาคม) เท่านั้น

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"

ต่อไปนี้คือตัวอย่างที่แสดงจำนวนคลิกต่อข้อเสนอที่มีการคลิกมากกว่า 100 ครั้งสำหรับวิธีทางการตลาดของ ADS ในช่วงเดือนสิงหาคม

SELECT offerId, clicks
FROM ProductPerformanceView
WHERE clicks > 100
  AND marketingMethod = 'ADS'
  AND date BETWEEN '2020-08-01' AND '2020-08-31'

วรรค WHERE ไม่รองรับ OR โอเปอเรเตอร์จะคำนึงถึงตัวพิมพ์เล็กและตัวพิมพ์ใหญ่ ดูรายการโอเปอเรเตอร์ทั้งหมดได้ที่ grammar

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 ช่วยให้คุณสามารถระบุจำนวนผลลัพธ์ที่จะแสดงผล

ต่อไปนี้คือตัวอย่างที่แสดงผลลัพธ์เพียง 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

ดูรายการช่วงวันที่ที่เกี่ยวข้องทั้งหมดได้ที่ grammar