Spec-Zone.ru › Yii 2.0

Класс yii\sphinx\QueryBuilder

Все классы | Свойства | Методы | Константы
Наследование yii\sphinx\QueryBuilder » yii\base\Object
Реализует yii\base\Configurable
Доступно с версии 2.0
Исходный код https://github.com/yiisoft/yii2-sphinx/blob/master/QueryBuilder.php

QueryBuilder строит SQL-запрос SELECT на основе спецификаций, заданных объектом yii\sphinx\Query.

QueryBuilder также может использоваться для построения SQL-запросов, таких как INSERT, REPLACE, UPDATE, DELETE, на основе объекта yii\sphinx\Query.

Публичные свойства

Свойство Тип Описание Определено в
$db yii\sphinx\Connection Подключение к Sphinx. yii\sphinx\QueryBuilder
$matchBuilder yii\sphinx\MatchBuilder Построитель соответствий. yii\sphinx\QueryBuilder
$querySeparator строка Разделитель между различными SQL-запросами. yii\sphinx\QueryBuilder
$separator строка Разделитель между различными фрагментами SQL-запроса. yii\sphinx\QueryBuilder

Защищенные свойства

Свойство Тип Описание Определено в
$conditionBuilders массив Карта условия запроса к методам-строителям. yii\sphinx\QueryBuilder

Публичные методы

Метод Описание Определено в
__call() Вызывает именованный метод, который не является методом класса. yii\base\Object
__construct() Конструктор. yii\sphinx\QueryBuilder
__get() Возвращает значение свойства объекта. yii\base\Object
__isset() Проверяет, установлено ли свойство, т.е. определено и не равно null. yii\base\Object
__set() Устанавливает значение свойства объекта. yii\base\Object
__unset() Устанавливает свойство объекта в null. yii\base\Object
batchInsert() Генерирует пакетную INSERT SQL-команду. yii\sphinx\QueryBuilder
batchReplace() Генерирует пакетную REPLACE SQL-команду. yii\sphinx\QueryBuilder
build() Генерирует SELECT SQL-команду из объекта yii\sphinx\Query. yii\sphinx\QueryBuilder
buildAndCondition() Соединяет два или более SQL-выражений с оператором AND или OR. yii\sphinx\QueryBuilder
buildBetweenCondition() Создаёт SQL-выражение с оператором BETWEEN. yii\sphinx\QueryBuilder
buildColumns() Обрабатывает столбцы и должным образом заключает их в кавычки, если необходимо. yii\sphinx\QueryBuilder
buildCondition() Парсит спецификацию условия и генерирует соответствующее SQL-выражение. yii\sphinx\QueryBuilder
buildFrom() yii\sphinx\QueryBuilder
buildGroupBy() yii\sphinx\QueryBuilder
buildHashCondition() Создаёт условие на основе пар столбец-значение. yii\sphinx\QueryBuilder
buildHaving() yii\sphinx\QueryBuilder
buildInCondition() Создаёт SQL-выражение с оператором IN. yii\sphinx\QueryBuilder
buildLikeCondition() Создаёт SQL-выражение с оператором LIKE. yii\sphinx\QueryBuilder
buildLimit() yii\sphinx\QueryBuilder
buildMatch() yii\sphinx\QueryBuilder
buildNotCondition() Инвертирует SQL-выражение с оператором NOT. yii\sphinx\QueryBuilder
buildOption() yii\sphinx\QueryBuilder
buildOrderBy() yii\sphinx\QueryBuilder
buildOrderByAndLimit() Строит предложения ORDER BY и LIMIT/OFFSET и добавляет их к заданному SQL. yii\sphinx\QueryBuilder
buildSelect() yii\sphinx\QueryBuilder
buildSimpleCondition() Создаёт SQL-выражение, подобное "column" operator value. yii\sphinx\QueryBuilder
buildWhere() yii\sphinx\QueryBuilder
buildWithin() yii\sphinx\QueryBuilder
callKeywords() Строит SQL-запрос для возвращения токенизированных и нормализованных форм ключевых слов и, необязательно, статистики ключевых слов. yii\sphinx\QueryBuilder
callSnippets() Строит SQL-запрос для вызова фрагментов из предоставленных данных и запроса, используя заданные настройки индекса. yii\sphinx\QueryBuilder
canGetProperty() Возвращает значение, указывающее, можно ли прочитать свойство. yii\base\Object
canSetProperty() Возвращает значение, указывающее, можно ли установить свойство. yii\base\Object
className() Возвращает полное квалифицированное имя этого класса. yii\base\Object
delete() Создаёт DELETE SQL-команду. yii\sphinx\QueryBuilder
getMatchBuilder() yii\sphinx\QueryBuilder
hasMethod() Возвращает значение, указывающее, определён ли метод. yii\base\Object
hasProperty() Возвращает значение, указывающее, определено ли свойство. yii\base\Object
init() Инициализирует объект. yii\base\Object
insert() Создаёт INSERT SQL-команду. yii\sphinx\QueryBuilder
replace() Создаёт REPLACE SQL-команду. yii\sphinx\QueryBuilder
truncateIndex() Строит SQL-запрос для обнуления индекса. yii\sphinx\QueryBuilder
update() Создаёт UPDATE SQL-команду. yii\sphinx\QueryBuilder

Методы защищённые

Метод Описание Определено в
buildCompositeInCondition() yii\sphinx\QueryBuilder
buildFacets() yii\sphinx\QueryBuilder
buildShowMeta() Строит запрос SHOW META. yii\sphinx\QueryBuilder
composeColumnValue() Составляет значение столбца для SQL, учитывая тип столбца. yii\sphinx\QueryBuilder
generateBatchInsertReplace() Генерирует пакетную INSERT/REPLACE SQL-команду. yii\sphinx\QueryBuilder
generateInsertReplace() Генерирует INSERT/REPLACE SQL-команду. yii\sphinx\QueryBuilder

Константы

Константа Значение Описание Определено в
PARAM_PREFIX ':qp' Префикс для параметров связывания запросов, генерируемых автоматически. yii\sphinx\QueryBuilder

Подробное описание свойств

$conditionBuilders защищенное свойство

Карта условий запроса к методам-строителям. Эти методы используются методом buildCondition() для построения SQL-условий из синтаксиса массивов.

protected array $conditionBuilders = ['AND' => 'buildAndCondition', 'OR' => 'buildAndCondition', 'BETWEEN' => 'buildBetweenCondition', 'NOT BETWEEN' => 'buildBetweenCondition', 'IN' => 'buildInCondition', 'NOT IN' => 'buildInCondition', 'LIKE' => 'buildLikeCondition', 'NOT LIKE' => 'buildLikeCondition', 'OR LIKE' => 'buildLikeCondition', 'OR NOT LIKE' => 'buildLikeCondition', 'NOT' => 'buildNotCondition']

$db общедоступное свойство

Подключение к Sphinx.

public yii\sphinx\Connection $db = null

$matchBuilder общедоступное только для чтения свойство

Строитель соответствий.

public yii\sphinx\MatchBuilder getMatchBuilder ( )

$querySeparator общедоступное свойство

Разделитель между различными SQL-запросами. В основном используется методом build() при генерации SQL-запроса.

public string $querySeparator = "; "

$separator общедоступное свойство

Разделитель между различными фрагментами SQL-запроса. По умолчанию пустое значение. В основном используется методом build() при генерации SQL-запроса.

public string $separator = " "

Подробное описание методов

__construct() public method

Конструктор.

public void __construct ( $connection, $config = [] )
$connection yii\sphinx\Connection

Подключение к Sphinx.

$config array

Параметры в формате имя-значение, которые будут использованы для инициализации свойств объекта.

batchInsert() public method

Генерирует SQL-запрос batch INSERT.

Например,

$sql = $queryBuilder->batchInsert('idx_user', ['id', 'name', 'age'], [
    [1, 'Tom', 30],
    [2, 'Jane', 20],
    [3, 'Linda', 25],
], $params);

Обратите внимание, что значения в каждой строке должны соответствовать именам соответствующих столбцов.

public string batchInsert ( $index, $columns, $rows, &$params )
$index string

Индекс, в который будут вставлены новые строки.

$columns array

Имена столбцов.

$rows array

Строки, которые будут вставлены в индекс.

$params array

Параметры привязки, которые будут сгенерированы этим методом. Они должны быть привязаны к команде Sphinx позже.

return string

SQL-запрос batch INSERT.

batchReplace() public method

Генерирует SQL-запрос batch REPLACE.

Например,

$sql = $queryBuilder->batchReplace('idx_user', ['id', 'name', 'age'], [
    [1, 'Tom', 30],
    [2, 'Jane', 20],
    [3, 'Linda', 25],
], $params);

Обратите внимание, что значения в каждой строке должны соответствовать именам соответствующих столбцов.

public string batchReplace ( $index, $columns, $rows, &$params )
$index string

Индекс, в который будут заменены строки.

$columns array

Имена столбцов.

$rows array

Строки, которые будут заменены в индексе.

$params array

Параметры привязки, которые будут сгенерированы этим методом. Они должны быть привязаны к команде Sphinx позже.

return string

SQL-запрос batch INSERT.

build() public method

Генерирует SQL-запрос SELECT из объекта yii\sphinx\Query.

public array build ( $query, $params = [] )
$query yii\sphinx\Query

Объект yii\sphinx\Query, из которого будет сгенерирован SQL-запрос.

$params array

Параметры, которые будут привязаны к сгенерированному SQL-запросу. Эти параметры будут включены в результат вместе с дополнительными параметрами, сгенерированными в процессе построения запроса.

return array

Сгенерированный SQL-запрос (первый элемент массива) и соответствующие параметры для привязки к SQL-запросу (второй элемент массива). Возвращаемые параметры включают те, которые были предоставлены в $params.

throws yii\base\NotSupportedException

если запрос содержит опцию 'join'.

buildAndCondition() public method

Соединяет две или более SQL-выражений оператором AND или OR.

public string buildAndCondition ( $indexes, $operator, $operands, &$params )
$indexes yii\sphinx\IndexSchema[]

Список индексов, затронутых запросом.

$operator string

Оператор для соединения операндов.

$operands array

SQL-выражения для соединения.

$params array

Параметры привязки для заполнения.

return string

Сгенерированное SQL-выражение.

buildBetweenCondition() public method

Создает SQL-выражение с оператором BETWEEN.

public string buildBetweenCondition ( $indexes, $operator, $operands, &$params )
$indexes yii\sphinx\IndexSchema[]

Список индексов, затронутых запросом.

$operator string

Используемый оператор (например, BETWEEN или NOT BETWEEN)

$operands array

Первый операнд — имя столбца. Второй и третий операнды описывают интервал, в котором должно находиться значение столбца.

$params array

Параметры привязки для заполнения.

return string

Сгенерированное SQL-выражение.

throws yii\db\Exception

если предоставлено неверное количество операндов.

buildColumns() public method

Обрабатывает столбцы и должным образом приводит их к каноническому виду, если это необходимо.

Соединяет все столбцы в строку с разделителями запятыми.

public string buildColumns ( $columns )
$columns string|array

Обрабатываемые столбцы.

return string

Результат обработки.

buildCompositeInCondition() protected method

protected string buildCompositeInCondition ( $indexes, $operator, $columns, $values, &$params )
$indexes yii\sphinx\IndexSchema[]

Список индексов, затронутых запросом.

$operator string

Используемый оператор (например, IN или NOT IN)

$columns array
$values array
$params array

Параметры привязки для заполнения.

return string

Сгенерированное SQL-выражение.

buildCondition() public method

Парсит условие и генерирует соответствующее SQL-выражение.

public string buildCondition ( $indexes, $condition, &$params )
$indexes yii\sphinx\IndexSchema[]

Список индексов, затронутых запросом.

$condition string|array

Условие. Обратитесь к yii\sphinx\Query::where() для уточнения способа задания условия.

$params array

Параметры привязки для заполнения.

return string

Сгенерированное SQL-выражение.

throws yii\db\Exception

если условие имеет неправильный формат.

buildFacets() protected method

protected string buildFacets ( $facets, &$params )
$facets массив

Спецификации фасетов

$params массив

Параметры привязки для заполнения

return строка

Строка с условием FACET, сформированная из \yii\sphinx\query

throws yii\base\InvalidConfigException

при некорректной спецификации фасета.

buildFrom() public method

public string buildFrom ( $indexes, &$params )
$indexes массив
$params массив

Параметры привязки для заполнения

return строка

Строка с условием FROM, сформированная из \yii\sphinx\query.

buildGroupBy() public method

public string buildGroupBy ( $columns, $limit )
$columns массив

Столбцы группировки

$limit целое число

Предел группировки

return строка

Строка с условием GROUP BY

buildHashCondition() public method

Создаёт условие на основе пар имя-значение столбца.

public string buildHashCondition ( $indexes, $condition, &$params )
$indexes yii\sphinx\IndexSchema[]

Список индексов, затронутых запросом

$condition массив

Спецификация условия.

$params массив

Параметры привязки для заполнения

return строка

Сгенерированное SQL выражение

buildHaving() public method

public string buildHaving ( $indexes, $condition, &$params )
$indexes строка[]

Список имён индексов, затронутых запросом

$condition строка|массив
$params массив

Параметры привязки для заполнения

return строка

Строка с условием HAVING, сформированная из yii\sphinx\Query::$having.

buildInCondition() public method

Создаёт SQL выражение с оператором IN.

public string buildInCondition ( $indexes, $operator, $operands, &$params )
$indexes yii\sphinx\IndexSchema[]

Список индексов, затронутых запросом

$operator строка

Оператор (например, IN или NOT IN)

$operands массив

Первый операнд - имя столбца. Если это массив, то будет сгенерировано составное условие IN. Второй операнд - массив значений, которые должно содержать значение столбца. Если это пустой массив, то сгенерированное выражение будет иметь значение false если оператор IN, и пустое, если оператор NOT IN.

$params массив

Параметры привязки для заполнения

return строка

Сгенерированное SQL выражение

throws yii\db\Exception

если задано неверное количество операндов.

buildLikeCondition() public method

Создаёт SQL выражение с оператором LIKE

public string buildLikeCondition ( $indexes, $operator, $operands, &$params )
$indexes yii\sphinx\IndexSchema[]

Список индексов, затронутых запросом

$operator строка

Используемый оператор (например, LIKE, NOT LIKE, OR LIKE или OR NOT LIKE)

$operands массив

Массив из двух или трёх операндов

  • Первый операнд - имя столбца.
  • Второй операнд - одиночное значение или массив значений, с которыми должно сравниваться значение столбца. Если это пустой массив, то сгенерированное выражение будет иметь значение false если оператор LIKE или OR LIKE, и пустое, если оператор NOT LIKE или OR NOT LIKE.
  • Необязательный третий операнд может быть задан для указания того, как обрабатывать специальные символы в значении(ях). Операнд должен быть массивом сопоставлений специальных символов их экранированным аналогам. Если этот операнд не задан, будет использоваться массив по умолчанию. Вы можете использовать false или пустой массив, чтобы указать, что значения уже экранированы и не требуется никакая обработка. Обратите внимание, что при использовании отображения экранирования (или если третий операнд не задан), значения автоматически будут заключены в пару символов процента.
$params массив

Параметры привязки для заполнения

return строка

Сгенерированное SQL выражение

throws yii\base\InvalidParamException

если задано неверное количество операндов.

buildLimit() public method

public string buildLimit ( $limit, $offset )
$limit целое число
$offset целое число
return строка

Условие LIMIT и OFFSET, сформированное из \yii\sphinx\query.

buildMatch() public method

public string buildMatch ( $match, &$params )
$match строка|yii\db\Expression|yii\sphinx\MatchExpression

Условие соответствия

$params массив

Параметры привязки для заполнения

return строка

Сгенерированное выражение MATCH

buildNotCondition() public method

Инвертирует SQL выражение с оператором NOT

public string buildNotCondition ( $indexes, $operator, $operands, &$params )
$indexes yii\sphinx\IndexSchema[]

Список индексов, на которые влияет запрос

$operator string

Оператор, используемый для соединения операндов

$operands array

SQL-выражения для соединения.

$params array

Параметры привязки для заполнения

return string

Сгенерированное SQL-выражение

throws yii\base\InvalidParamException

если количество операндов неверное.

buildOption() public method

public string buildOption ( $options, &$params )
$options array

Параметры запроса в формате: имяПараметра => значениеПараметра

$params array

Параметры привязки для заполнения

return string

Построенная фраза OPTION из \yii\sphinx\query

buildOrderBy() public method

public string buildOrderBy ( $columns )
$columns array
return string

Фраза ORDER BY, построенная из \yii\sphinx\query.

buildOrderByAndLimit() public method

Строит фразы ORDER BY и LIMIT/OFFSET и добавляет их к заданному SQL.

public string buildOrderByAndLimit ( $sql, $orderBy, $limit, $offset )
$sql string

Существующий SQL (без ORDER BY/LIMIT/OFFSET)

$orderBy array

Столбцы для сортировки. См. yii\sphinx\Query::orderBy() для получения более подробной информации о том, как задать этот параметр.

$limit integer

Число ограничений. См. yii\sphinx\Query::limit() для получения более подробной информации.

$offset integer

Число смещения. См. yii\sphinx\Query::offset() для получения более подробной информации.

return string

SQL с добавленными фразами ORDER BY/LIMIT/OFFSET (если таковые имеются)

buildSelect() public method

public string buildSelect ( $columns, &$params, $distinct = false, $selectOption = null )
$columns array
$params array

Параметры привязки для заполнения

$distinct boolean
$selectOption string
return string

Построенная фраза SELECT из \yii\sphinx\query.

buildShowMeta() protected method

Строит запрос SHOW META.

protected string buildShowMeta ( $showMeta, &$params )
$showMeta boolean|string|yii\db\Expression

Спецификация SHOW META.

$params array

Параметры привязки для заполнения

return string

Запрос SHOW META, если не требуется — пустая строка.

buildSimpleCondition() public method

Создаёт SQL-выражения типа "column" operator value.

public string buildSimpleCondition ( $indexes, $operator, $operands, &$params )
$indexes yii\sphinx\IndexSchema[]

Список индексов, на которые влияет запрос

$operator string

Используемый оператор. Можно использовать любые значения, например >, <=, и т.д.

$operands array

Содержит два имени столбцов.

$params array

Параметры привязки для заполнения

return string

Сгенерированное SQL-выражение

throws yii\base\InvalidParamException

если count($operands) не равно 2

buildWhere() public method

public string buildWhere ( $indexes, $condition, &$params, $match = null )
$indexes string[]

Список имён индексов, которые затронуты запросом

$condition string|array
$params array

Параметры привязки для заполнения

$match string|yii\db\Expression|null
return string

Фраза WHERE, построенная из \yii\sphinx\query.

buildWithin() public method

public string buildWithin ( $columns )
$columns array
return string

Фраза ORDER BY, построенная из \yii\sphinx\query.

callKeywords() public method

Создаёт SQL-запрос для возврата токенизированных и нормализованных форм ключевых слов и, необязательно, статистики ключевых слов.

public string callKeywords ( $index, $text, $fetchStatistic, &$params )
$index string

Имя индекса, из которого нужно получить настройки обработки текста

$text string

Текст, который нужно разбить на ключевые слова.

$fetchStatistic boolean

Нужно ли возвращать статистику по документам и вхождениям ключевых слов

$params array

Параметры привязки, которые будут изменены этим методом, чтобы их можно было связать с командой Sphinx позднее.

return string

SQL-запрос для вызова ключевых слов.

callSnippets() public method

Создаёт SQL-запрос для вызова фрагментов из предоставленных данных и запроса, используя указанные настройки индекса.

public string callSnippets ( $index, $source, $match, $options, &$params )
$index string

Имя индекса, из которого нужно взять настройки обработки текста.

$source string|array

Исходные данные для извлечения фрагмента. Может быть строкой или массивом строк.

$match string

Полный текст запроса для создания фрагментов.

$options array

Список опций в формате: имяОпции => значениеОпции

$params array

Параметры связывания, которые будут изменены этим методом, чтобы их можно было связать с последующей командой Sphinx.

return string

SQL-запрос для вызова фрагментов.

composeColumnValue() protected method

Составление значения столбца для SQL с учётом типа столбца.

protected string composeColumnValue ( $indexes, $columnName, $value, &$params )
$indexes yii\sphinx\IndexSchema[]

Список индексов, затронутых запросом.

$columnName string

Имя столбца.

$value mixed

Исходное значение столбца.

$params array

Параметры связывания, которые нужно заполнить.

return string

SQL-выражение, представляющее значение столбца.

delete() public method

Создаёт SQL-запрос DELETE.

Например,

$sql = $queryBuilder->delete('idx_user', 'status = 0');

Метод корректно экранирует имена индексов и столбцов.

public string delete ( $index, $condition, &$params )
$index string

Индекс, из которого будут удалены данные.

$condition array|string

Условие, которое будет добавлено в часть WHERE. Обратитесь к yii\sphinx\Query::where() для получения информации о том, как указать условие.

$params array

Параметры связывания, которые будут изменены этим методом, чтобы их можно было связать с последующей командой Sphinx.

return string

SQL-запрос DELETE.

generateBatchInsertReplace() protected method

Генерирует SQL-запрос INSERT/REPLACE для партийных операций.

protected string generateBatchInsertReplace ( $statement, $index, $columns, $rows, &$params )
$statement string

Запрос, который нужно сгенерировать.

$index string

Имя затронутого индекса.

$columns array

Данные столбцов (имя => значение).

$rows array

Строки, которые нужно добавить в индекс.

$params array

Параметры связывания, которые будут сгенерированы этим методом.

return string

Сгенерированный SQL-запрос.

generateInsertReplace() protected method

Генерирует SQL-запрос INSERT/REPLACE.

protected string generateInsertReplace ( $statement, $index, $columns, &$params )
$statement string

Запрос, который нужно сгенерировать.

$index string

Имя затронутого индекса.

$columns array

Данные столбцов (имя => значение).

$params array

Параметры связывания, которые будут сгенерированы этим методом.

return string

Сгенерированный SQL-запрос.

getMatchBuilder() public method (доступно начиная с версии 2.0.6)

public yii\sphinx\MatchBuilder getMatchBuilder ( )
return yii\sphinx\MatchBuilder

Построитель соответствия.

insert() public method

Создаёт SQL-запрос INSERT.

Например,

$sql = $queryBuilder->insert('idx_user', [
    'name' => 'Sam',
    'age' => 30,
    'id' => 10,
], $params);

Метод корректно экранирует имена индексов и столбцов.

public string insert ( $index, $columns, &$params )
$index string

Индекс, в который будут добавлены новые строки.

$columns array

Данные столбцов (имя => значение), которые нужно добавить в индекс.

$params array

Параметры связывания, которые будут сгенерированы этим методом. Они должны быть связаны с последующей командой Sphinx.

return string

SQL-запрос INSERT.

replace() public method

Создаёт SQL-запрос REPLACE.

Например,

$sql = $queryBuilder->replace('idx_user', [
    'name' => 'Sam',
    'age' => 30,
    'id' => 10,
], $params);

Метод корректно экранирует имена индексов и столбцов.

public string replace ( $index, $columns, &$params )
$index string

Индекс, в котором будут заменены строки.

$columns array

Данные столбцов (имя => значение), которые нужно заменить в индексе.

$params array

Параметры связывания, которые будут сгенерированы этим методом. Они должны быть связаны с последующей командой Sphinx.

return string

SQL-запрос INSERT.

truncateIndex() public method

Строит SQL-запрос для удаления данных из индекса.

public string truncateIndex ( $index )
$index string

Индекс, который нужно очистить. Метод корректно обработает имя индекса.

return string

SQL-запрос для очистки индекса.

update() public method

Создаёт SQL-запрос UPDATE.

Например,

$params = [];
$sql = $queryBuilder->update('idx_user', ['status' => 1], 'age > 30', $params);

Метод корректно экранирует имена индексов и столбцов.

public строка update ( $index, $columns, $condition, &$params, $options )
$index строка

Индекс, который будет обновлен.

$columns массив

Данные столбцов (имя => значение) для обновления.

$condition массив|строка

Условие, которое будет помещено в часть WHERE. Обратитесь к yii\sphinx\Query::where(), чтобы узнать, как указать условие.

$params массив

Параметры связывания, которые будут изменены этим методом, чтобы их можно было связать с командой Sphinx позже.

$options массив

Список параметров в формате: имяПараметра => значениеПараметра

return строка

SQL-запрос UPDATE

© 2008–2017 by Yii Software LLC
Licensed under the three clause BSD license.
http://www.yiiframework.com/doc-2.0/yii-sphinx-querybuilder.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API