ภาษาการค้นหาของ Merchant Center

ภาษาการค้นหาของ 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 พิจารณาตัวพิมพ์เล็กและใหญ่
(ไม่) ชอบ พิจารณาตัวพิมพ์เล็กและใหญ่
CONTAINS (...) พิจารณาตัวพิมพ์เล็กและใหญ่
REGEXP_MATCH ไม่บังคับทั้ง 2 อย่าง

ข้อความ

ต่อไปนี้คือข้อความที่คุณค้นหาได้ด้วย MCQL

SELECT

SELECTclause จะใช้รายการฟิลด์ที่คั่นด้วยคอมมาเพื่อดึงข้อมูล

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

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

SELECT
  date,
  marketing_method,
  impressions,
  clicks
FROM product_performance_view
WHERE date BETWEEN '2023-08-01' AND '2023-08-31'

จาก

โดยFROMระบุตารางที่จะดึงข้อมูลในคำขอ คุณระบุได้เพียงฟิลด์เดียวในอนุประโยค 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 clause จะช่วยให้คุณดึงข้อมูลผลลัพธ์ตามลำดับที่ระบุได้

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

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

ดูรายการช่วงวันที่แบบสัมพัทธ์ทั้งหมดที่ใช้ได้ในไวยากรณ์