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