لغة طلب البحث في 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
يمكنك استخدام الرموز التالية:
- تشير السمة
?
إلى عنصر اختياري. *
تعني صفرًا أو أكثر؛ و+
تعني واحدًا أو أكثر.- تشير السمة
(xxxxxx)
إلى مجموعة. - تشير السمة
[a-z0-9]
إلى نطاقات الأحرف. - يشير الاختصار
|
إلى "أو".
الحساسية لحالة الأحرف
معظم عوامل تشغيل MCQL حساسة لحالة الأحرف:
عوامل التشغيل | الحساسية لحالة الأحرف |
---|---|
= أو != | حساس لحالة الأحرف |
(ليس) الهند | حساس لحالة الأحرف |
(ليس) أعجبني | حساس لحالة الأحرف |
يحتوي على (...) | حساس لحالة الأحرف |
REGEXP_MATCH | كلاهما اختياريًا |
البنود
فيما يلي العبارات التي يمكنك الاستعلام عنها باستخدام MCQL:
SELECT
تستخدم العبارة SELECT
قائمة حقول مفصولة بفواصل لاستردادها.
يمكنك اختيار أي حقل من طريقة العرض التي تستخدمها. فيما يلي بعض الأمثلة على الحقول التي يمكنك اختيارها:
يمكنك إجراء طلب بحث عن أنواع حقول متعددة في طلب واحد. وفي ما يلي مثال لذلك:
SELECT
date,
marketingMethod,
impressions,
clicks
FROM ProductPerformanceView
WHERE date BETWEEN '2020-08-01' AND '2020-08-31'
FROM
تحدد العبارة FROM
الجدول المطلوب استرجاع البيانات منه في الطلب. يمكنك
لتحديد حقل واحد فقط في عبارة 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
. عوامل التشغيل حسّاسة لحالة الأحرف. بالنسبة إلى
القائمة الكاملة لعوامل التشغيل، راجِع القواعد النحوية.
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
تتيح لك عبارة 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
راجِع القواعد النحوية للاطّلاع على القائمة الكاملة للنطاقات الزمنية النسبية المتاحة.