9 if (!is_array($arSelect))
13 if (
count($arSelect) < 1)
20 if (!is_array($arOrder))
24 if (
count($arOrder) < 1)
27 'TABLE_NAME' =>
'ASC',
32 foreach ($arOrder as $strColumn => $strDirection)
34 $strColumn = mb_strtoupper($strColumn);
35 $strDirection = mb_strtoupper($strDirection) ===
'ASC' ?
'ASC' :
'DESC';
42 $arSelect[] = $strColumn;
43 $arQueryOrder[$strColumn] = $strColumn .
' ' . $strDirection;
50 foreach ($arSelect as $strColumn)
52 $strColumn = mb_strtoupper($strColumn);
64 $arQuerySelect[$strColumn] =
's.' . $strColumn;
67 $arQuerySelect[$strColumn] =
'c.' . $strColumn;
78 'FIELD_TYPE' =>
'int',
84 'FIELD_NAME' =>
's.SQL_MD5',
85 'FIELD_TYPE' =>
'string',
90 'FIELD_NAME' =>
's.TABLE_NAME',
91 'FIELD_TYPE' =>
'string',
96 'FIELD_NAME' =>
's.COLUMN_NAMES',
97 'FIELD_TYPE' =>
'string',
101 'TABLE_ALIAS' =>
'c1',
102 'FIELD_NAME' =>
'c1.BANNED',
103 'FIELD_TYPE' =>
'string',
104 'JOIN' =>
'LEFT JOIN b_perf_index_complete c1 on c1.TABLE_NAME = s.TABLE_NAME and c1.COLUMN_NAMES = s.COLUMN_NAMES',
108 if (
count($arQuerySelect) < 1)
110 $arQuerySelect = [
'ID' =>
's.ID'];
117 $strQueryWhere = $obQueryWhere->GetQuery(
$arFilter);
120 SELECT ' . implode(
', ', $arQuerySelect) .
'
121 FROM b_perf_index_suggest s
122 ' . $obQueryWhere->GetJoins() .
'
123 ' . ($bJoin ?
'LEFT JOIN b_perf_index_complete c on c.TABLE_NAME = s.TABLE_NAME and c.COLUMN_NAMES = s.COLUMN_NAMES' :
'') .
'
124 ' . ($strQueryWhere ?
'WHERE ' . $strQueryWhere :
'') .
'
125 ' . (
count($arQueryOrder) ?
'ORDER BY ' . implode(
', ', $arQueryOrder) :
'') .
'