РЕПЕТИТОР математика физика информатика
Для школьников и студентов. Подтягивание пробелов. ЦЭ, ЦТ, ОГЭ, ЕГЭ.
Идет набор на ЛЕТО. Жмите для подробностей:)
251 of 1392 menu

Метод distinct

Метод distinct применяется к запросу Query Builder и позволяет получить только уникальные записи из базы данных. Метод работает путём добавления оператора DISTINCT в генерируемый SQL-запрос. Метод не принимает никаких параметров и возвращает тот же экземпляр запроса, дополненный условием уникальности.

Синтаксис

<?php DB::table($table)->distinct()->get(); ?>

Пример

Давайте получим уникальные значения поля 'status' из таблицы 'articles':

<?php namespace App\Http\Controllers; use Illuminate\Support\Facades\DB; class ArticleController extends Controller { public function index() { $res = DB::table('articles') ->distinct() ->pluck('status'); foreach ($res as $status) { echo $status; } } } ?>

Результат выполнения кода:

"draft" "published" "archived"

Пример

Давайте получим уникальные комбинации значений полей 'category_id' и 'status':

<?php namespace App\Http\Controllers; use Illuminate\Support\Facades\DB; class ArticleController extends Controller { public function index() { $res = DB::table('articles') ->distinct() ->select('category_id', 'status') ->get(); foreach ($res as $row) { echo $row->category_id . ' - ' . $row->status; } } } ?>

Результат выполнения кода:

"1 - draft" "1 - published" "2 - published" "3 - archived"

Пример

Давайте получим уникальные значения поля 'user_id' из таблицы 'posts' с дополнительной фильтрацией:

<?php namespace App\Http\Controllers; use Illuminate\Support\Facades\DB; class PostController extends Controller { public function index() { $res = DB::table('posts') ->distinct() ->where('is_active', true) ->pluck('user_id'); foreach ($res as $userId) { echo $userId; } } } ?>

Результат выполнения кода:

"1" "2" "4" "5"

Пример

Давайте получим общее количество уникальных значений поля 'category_id':

<?php namespace App\Http\Controllers; use Illuminate\Support\Facades\DB; class CategoryController extends Controller { public function index() { $res = DB::table('articles') ->distinct() ->count('category_id'); echo $res; } } ?>

Результат выполнения кода:

"5"

Смотрите также

  • метод groupBy,
    который группирует записи по заданным полям
  • метод select,
    который позволяет выбрать определённые столбцы
  • метод pluck,
    который получает значения одного столбца
  • метод count,
    который подсчитывает количество записей
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить