ภาษาการค้นหาของ 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]
หมายถึงช่วงอักขระ|
ย่อมาจาก "หรือ"
การคำนึงถึงตัวพิมพ์เล็กและตัวพิมพ์ใหญ่
โอเปอเรเตอร์ MCQL ส่วนใหญ่จะคำนึงถึงตัวพิมพ์เล็กและใหญ่
โอเปอเรเตอร์ | คำนึงถึงตัวพิมพ์เล็กและตัวพิมพ์ใหญ่ |
---|---|
= หรือ != | พิจารณาตัวพิมพ์เล็กและใหญ่ |
(NOT) IN | พิจารณาตัวพิมพ์เล็กและใหญ่ |
(NOT) LIKE | พิจารณาตัวพิมพ์เล็กและใหญ่ |
CONTAINS (...) | พิจารณาตัวพิมพ์เล็กและใหญ่ |
REGEXP_MATCH | ทั้ง 2 อย่าง (ไม่บังคับ) |
ประโยค
ประโยคที่คุณค้นหาด้วย MCQL ได้มีดังนี้
SELECT
ประโยค SELECT
จะรับรายการช่องที่คั่นด้วยคอมมาเพื่อดึงข้อมูล
คุณเลือกช่องใดก็ได้จากมุมมองที่ใช้อยู่ ตัวอย่างช่องที่เลือกได้มีดังนี้
คุณสามารถค้นหาข้อมูลในช่องหลายประเภทในคําขอเดียว เช่น
SELECT
date,
marketing_method,
impressions,
clicks
FROM product_performance_view
WHERE date BETWEEN '2023-08-01' AND '2023-08-31'
จาก
ประโยค FROM
จะระบุตารางที่จะดึงข้อมูลในคําขอ คุณสามารถระบุได้เพียง 1 ช่องในประโยค FROM
ต้องใส่ประโยค FROM
ในการค้นหาทั้งหมด
ที่ไหน
ใช้คำสั่ง WHERE
เพื่อกรองข้อมูลตามคำขอ ต้องมีประโยค WHERE
สำหรับการค้นหาเกี่ยวกับประสิทธิภาพ
คุณสามารถกรองตามช่องกลุ่มทั้งหมด และตามช่องเมตริกเพิ่มเติมได้หากระบุไว้ในอนุประโยค SELECT
ต่อไปนี้คือตัวอย่างที่ใช้ WHERE
เพื่อแสดงผลลัพธ์จากระยะเวลาที่ระบุเท่านั้น (เดือนสิงหาคม)
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"
ต่อไปนี้คือตัวอย่างที่แสดงจํานวนการคลิกต่อข้อเสนอซึ่งมีจํานวนการคลิกมากกว่า 100 ครั้งสําหรับวิธีการทางการตลาด ADS
ในช่วงเดือนสิงหาคม
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'
คุณกำหนดสตริงวันที่ด้วยเครื่องหมายคำพูดเดี่ยว ('
) หรือเครื่องหมายคำพูดคู่ ("
) ก็ได้
ญาติ
คุณสามารถระบุช่วงวันที่แบบสัมพัทธ์ เช่น LAST_30_DAYS
หรือ THIS_MONTH
ได้โดยใช้ DURING
แทน BETWEEN
และ AND
ดังนี้
WHERE date DURING LAST_30_DAYS
ดูรายการช่วงวันที่แบบสัมพัทธ์ทั้งหมดได้ที่ไวยากรณ์