دستور زبان کوئری گوگل ادز

این صفحه شامل مرجع گرامر زبان پرس‌وجوی گوگل ادز است. برای جزئیات ساختار پرس‌وجو، به ساختار پرس‌وجو مراجعه کنید.

مرجع دستور زبان

مرجع گرامر زبان کوئری گوگل ادز (به صورت عبارت منظم) در اینجا آمده است:

Query            -> SelectClause FromClause? WhereClause? OrderByClause?
                    LimitClause? ParametersClause?
SelectClause     -> SELECT FieldName ("," FieldName)*
FromClause       -> FROM ResourceName
WhereClause      -> WHERE Condition (AND Condition)*
OrderByClause    -> ORDER BY Ordering ("," Ordering)*
LimitClause      -> LIMIT PositiveInteger
ParametersClause -> PARAMETERS Literal "=" Value ("," Literal "=" Value)*

Condition        -> FieldName IS NULL
                  | FieldName IS NOT NULL
                  | FieldName BETWEEN Value AND Value
                  | FieldName Operator Value
Operator         -> "=" | "!=" | ">" | ">=" | "<" | "<=" | IN | NOT IN
                  | LIKE | NOT LIKE | CONTAINS ANY | CONTAINS ALL
                  | CONTAINS NONE | DURING
                  | REGEXP_MATCH | NOT REGEXP_MATCH
Value            -> Literal | LiteralList | Number | NumberList | String
                  | StringList | Function
Ordering         -> FieldName (ASC | DESC)?

FieldName        -> [a-z]([a-zA-Z0-9._])*
ResourceName     -> [a-z]([a-zA-Z0-9_])*

StringList       -> "(" String ("," String)* ")"
LiteralList      -> "(" Literal ("," Literal)* ")"
NumberList       -> "(" Number ("," Number)* ")"

PositiveInteger  -> [1-9]([0-9])*
Number           -> -?[0-9]+(\.[0-9]+)?
String           -> ("'" SingleQuoteChar* "'") | ('"' DoubleQuoteChar* '"')
SingleQuoteChar  -> [^'\\\r\n] | EscapeSequence
DoubleQuoteChar  -> [^"\\\r\n] | EscapeSequence
EscapeSequence   -> "\\" ("\\" | "'" | '"' | "n" | "r" | "t")
Literal          -> [a-zA-Z]([a-zA-Z0-9_])*

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
  • ? نشان‌دهنده یک عنصر اختیاری است.
  • * به معنی صفر یا بیشتر است؛ + به معنی یک یا بیشتر است.
  • (...) نشان‌دهنده‌ی گروه‌بندی است، در حالی که "(" و ")" نشان‌دهنده‌ی پرانتزهای حرفی هستند.
  • [a-z0-9] ‎ به معنی محدوده کاراکترها و [^...] ‎ به معنی هر کاراکتری به جز کاراکترهای ذکر شده است.
  • | مخفف «یا» است.

قوانین و محدودیت‌ها

  • FromClause هنگام درخواست از GoogleAdsService الزامی است و هنگام درخواست از GoogleAdsFieldService باید حذف شود.

  • WhereClause فقط از ترکیب شرط‌ها با AND پشتیبانی می‌کند. OR منطقی پشتیبانی نمی‌شود؛ به جای آن از عملگر IN یا REGEXP_MATCH استفاده کنید.

  • عملگر REGEXP_MATCH از سینتکس RE2 استفاده می‌کند.

  • برای تطبیق یک کاراکتر حقیقی [ ، ] ، % یا _ با استفاده از عملگر LIKE ، کاراکتر را داخل کروشه قرار دهید. برای مثال، شرط زیر با تمام مقادیر campaign.name که با [Earth_to_Mars] شروع می‌شوند، مطابقت دارد:

    campaign.name LIKE '[[]Earth[_]to[_]Mars[]]%'
    
  • عملگر LIKE فقط روی فیلدهای رشته‌ای قابل استفاده است، نه روی آرایه‌ها.