db_distinct_field
includes/database.mysql.inc, строка 362
- Версии
- 5 – 6
db_distinct_field($table, $field, $query)
Оборачивает данное поле таблицы в '<code lang="drupal6">DISTINCT()
'. Функция добавляет эту обвертку в 'SELECT'
запроса и возвращает измененный запрос. Эта функция применяется только если 'DISTINCT'
еще не присутствует в запросе.
Параметры
$table
Таблица, содержащая поле, которое следует установить как 'DISTINCT'
.
$field
Поле.
$query
Весь SQL запрос.
Возвращаемое значение
SQL запрос с обернутым в 'DISTINCT'
полем (table.field
).
Связанные темы
Код
<?php
function db_distinct_field($table, $field, $query) {
$field_to_select = 'DISTINCT('. $table .'.'. $field .')';
// (?<!text) is a negative look-behind (no need to rewrite queries that already use DISTINCT).
return preg_replace('/(SELECT.*)(?:'. $table .'\.|\s)(?<!DISTINCT\()(?<!DISTINCT\('. $table .'\.)'. $field .'(.*FROM )/AUsi', '\1 '. $field_to_select .'\2', $query);
}
?>
Войдите или зарегистрируйтесь, чтобы получить возможность отправлять комментарии