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).

Связанные темы

▾ 1 функция вызывает db_distinct_field()

db_rewrite_sql in includes/database.inc
Изменяет первоначальные запросы нодов, таксономии и комментариев. Часто используется для формирования списков.

Код

<?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);
}
?>
Войдите или зарегистрируйтесь, чтобы получить возможность отправлять комментарии

Вход в систему