Laravel вывести sql запрос

Содержание
  1. Laravel Framework Russian Community
  2. Введение
  3. Настройка
  4. Настройка SQL Server
  5. SQL Server Configuration
  6. Подключения для чтения/записи
  7. Запросы на чистом SQL
  8. SQL запросы
  9. Именованные параметры запроса
  10. Вставка
  11. Обновление
  12. Удаление
  13. Иные запросы к БД
  14. Постобработчик запросов
  15. Транзакции
  16. Ручные транзакции
  17. Использование нескольких подключений к БД
  18. Основы работы с базами данных
  19. Введение
  20. Настройка
  21. Соединения для чтения и записи
  22. Использование нескольких соединений с БД
  23. Выполнение сырых SQL-запросов
  24. Прослушивание событий запросов
  25. Транзакции
  26. Журнал запросов
  27. Комментарии (2)
  28. Конструктор запросов
  29. Введение
  30. Получение результатов
  31. Получение результатов из таблицы «по кускам»
  32. Агрегатные функции
  33. Выборка ( SELECT )
  34. Сырые выражения
  35. Объединения ( JOIN )
  36. Слияние ( UNION )
  37. Условия WHERE
  38. Группировка условий
  39. Проверка на существование
  40. JSON фильтрация ( WHERE )
  41. Упорядочивание, группировка, предел и смещение
  42. Условное применение условий
  43. Вставка ( INSERT )
  44. Обновление ( UPDATE )
  45. Обновление JSON-столбцов
  46. Increment и Decrement
  47. Удаление ( DELETE )
  48. Пессимистическая блокировка
  49. Комментарии (4)

Laravel Framework Russian Community

Введение

Laravel делает работу с БД чрезвычайно простой благодаря возможности работы на трех уровнях: на чистом SQL, через конструктор запросов fluent query builder, через объектные модели Eloquent ORM. Laravel поддерживает четыре СУБД:

Настройка

Файл настройки БД находится в config/database.php . В нем можно опеределить все подключения к БД, задать подключение по умолчанию. Также в файле есть примеры для всех СУБД. Конфигурация по умолчанию готова для работы с виртуальной машиной Laravel Homestead, которая удобна для разработки на локальной машине. Конечно, вы можете менять конфигурацию в файле под ваши нужды.

Настройка SQL Server

SQL Server Configuration

Laravel поддерживает SQL Server «из коробки», однако, в файл настройки требуется добавить параметры подключения:

Подключения для чтения/записи

Если необходимо настроить раздельные подключения для чтения (SELECT) и изменения данных (INSERT, UPDATE, and DELETE), то Laravel позваоляет это сделать на одном дыхании. Соответствующее подключение будет автоматически использоваться при работе с БД любым из способов: чистый SQL, конструктор запросов, объектные модели (Eloquent ORM)

Читайте также:  Чем чистить дымогенератор холодного копчения своими

Пример настройки раздельных подключений для чтения/записи:

Обратите внимание, что в массив настройки были добавлены два ключа: read and write . Каждый из них является массивом, в котором содержится единственный ключ: host . Остальные опции подключений являются общими и заданы непосредственно в массиве mysql .

Таким образом, нам нужно будет добавлять параметры в массивы read и write , только, если мы хотим переписать значения этих параметров в основном массиве. Так в приведенном примере хост 192.168.1.1 будет использоваться для чтения, а 192.168.1.2 для записи. Учетные данные, префикс, кодировка и все другие опции в массиве mysql будут общими для обоих подключений.

Запросы на чистом SQL

После настройки подключения к БД вы можете делать запросы, используя фасад DB . Фасад предоставляет методы для каждого типа запроса: select , update , insert , delete , и statement .

SQL запросы

Для простого запроса мы можем использовать метод select фасада DB :

Первый аргумент метода select — это строка, содержащая запрос на чистом SQL, второй аргумент — массив со значениями, подставляемыми в запрос. Обычно эти значения используется в выражении where . Такая привязка параметров защищает от SQL инъекций.

Метод select всегда возвращает массив. Каждое значение в массиве будет объектом PHP StdClass , предоставляющим доступ к значениям результата запроса:

Именованные параметры запроса

Вместо использования ? , указывающего на привязку параметра к запросу, вы можете использовать имя:

Вставка

Для вставки записей в БД используется метод insert фасада DB . Использование метода подобно методу select , где первый аргумент — запрос на SQL, второй — параметры:

Обновление

Метод update используется для обновления записей в БД. Возвращает количество обновленных строк:

Удаление

Метод delete используется для удаления записей из таблицы. Возвращает количество удаленных строк:

Иные запросы к БД

Используйте метод statement фасада DB :

Постобработчик запросов

Если вы хотите получать каждый SQL запрос, выполненый приложением, используйте метод listen . Этот метод полезен для логирования и отладки запросов. Регистрация постобработчика в service provider:

Транзакции

Для использования транзакций предназначен метод transaction фасада DB . Если будет брошено исключение в функции-замыкании, то транзакция будет отменена. Если транзакция успешна, то она будет автоматически завершена(committed). Вам не требуется вручную делать откат или завершение (committing) при использовании этого метода:

Ручные транзакции

Если требуется начать транзакцию вручную и иметь полный контроль над откатами и завершениями используйте метод beginTransaction фасада DB :

Примечание: Используйте перечисленные методы для ручного управления транзакциями при работе с query builder и Eloquent ORM.

Использование нескольких подключений к БД

При использовании нескольких подключений доступ к каждому из них можно получить через метод connection . Методу необходимо передать имя подключения, которое должно соответствовать одному из имен в файле настройки БД config/database.php :

Вы также можете получить низкоуровневый объект PDO для текущего подключения:

Источник

Основы работы с базами данных

Database: Getting Started → Community +1 015 31 мая 2015

Введение

В Laravel можно чрезвычайно просто взаимодействовать с БД на различных «движках» , будь то сырой SQL, гибкий построитель запросов или Eloquent ORM . На данный момент Laravel поддерживает четыре системы баз данных:

Настройка

Настройки работы с БД хранятся в файле config/database.php . Здесь вы можете указать все используемые вами соединения к БД, а также задать соединение по умолчанию. Примеры настройки большинства поддерживаемых видов подключений находятся в этом же файле.

По умолчанию образец настройки окружения Laravel подготовлен для использования с Laravel Homestead — удобной виртуальной машиной для Laravel-разработки на вашей локальной машине. Разумеется, вы можете изменить эти настройки для работы с вашей локальной БД.

Настройка SQLite

После создания новой базы данных SQLite при помощи команды sh touch database/database.sqlite , вы можете легко настроить переменные вашей среды для этой новой базы данных, используя её абсолютный путь:

Настройка SQL Server

Laravel поддерживает работу с SQL Server из коробки, надо лишь добавить настройку подключения к БД в ваш файл настроек config/database.php :

Соединения для чтения и записи

Иногда вам может понадобиться использовать разные подключения к базе данных: одно для запросов SELECT , а другое для запросов INSERT , UPDATE и DELETE . В Laravel это делается очень просто, и всегда будет использоваться соответствующее соединение, используете ли вы сырые запросы, построитель запросов или Eloquent ORM .

Чтобы увидеть, как должны быть настроены соединения чтения/записи, давайте посмотрим на этот пример:

Обратите внимание, что в массив настроек были добавлены два элемента: sql ‘read’ и sql ‘write’ . Оба элемента представляют собой массив с одним элементом sql ‘host’ . Остальные параметры БД для подключений чтения/записи будут заимствованы из основного массива sql ‘mysql’ .

Вам стоит размещать элементы в массивах PHP read и PHP write , только если вы хотите переопределить их значения из основного массива. Таким образом, в этом случае, 192.168.1.1 будет использоваться как хост для подключения «чтения» , а 192.168.1.2 — для подключения «записи» . Учётные данные для БД, префикс, набор символов, и все другие параметры основного массива sql ‘mysql’ будут использованы для обоих подключений.

Использование нескольких соединений с БД

При использовании нескольких соединений с БД вы можете получить доступ к каждому из них через метод PHP connection () фасада DB . Передаваемое в этот метод имя name должно соответствовать одному из перечисленных в файле config/database.php соединений:

Вы также можете получить низкоуровневый объект PDO для этого подключения методом PHP getPdo () :

Выполнение сырых SQL-запросов

Когда вы настроили соединение с базой данных, вы можете выполнять запросы, используя фасад DB . Этот фасад имеет методы для каждого типа запроса: select , update , insert , delete и statement .

Выполнение запроса SELECT

Чтобы выполнить базовый запрос, можно использовать метод PHP select () фасада DB :

Первый аргумент метода PHP select () — сырой SQL-запрос, второй — любые связки параметров для прикрепления к запросу. Обычно это значения ограничений условия where . Привязка параметров обеспечивает защиту от SQL-инъекций.

Метод PHP select () всегда возвращает массив результатов. Каждый результат в массиве — объект PHP StdClass , что позволяет вам обращаться к значениям результатов:

Использование привязки имён

Вместо использования знака вопроса ? для обозначения привязки параметров, вы можете выполнить запрос, используя привязку по имени:

Выполнение запроса INSERT

Чтобы выполнить запрос insert , можно использовать метод PHP insert () фасада DB . Как и PHP select () , данный метод принимает сырой SQL-запрос первым аргументом, а вторым — привязки:

Выполнение запроса UPDATE

Для обновления существующих записей в БД используется метод PHP update () , который возвращает количество изменённых записей:

Выполнение запроса DELETE

Для удаления записей из БД используется метод PHP delete () , который возвращает количество изменённых записей:

Выполнение запроса общего типа

Некоторые запросы к БД не возвращают никаких значений. Для операций такого типа можно использовать метод PHP statement () фасада DB :

Прослушивание событий запросов

Если вы хотите получать каждый выполненный вашим приложением SQL-запрос, используйте метод PHP listen () . Этот метод полезен для журналирования запросов и отладки. Вы можете зарегистрировать свой слушатель запросов в сервис-провайдере:

Транзакции

Для выполнения набора запросов внутри одной транзакции вы можете использовать метод PHP transaction () фасада DB . Если в замыкании транзакции произойдёт исключение, она автоматически откатится. А если замыкание выполнится успешно, транзакция автоматически применится к БД. Вам не стоит переживать об этом при использовании метода PHP transaction () :

Обработка взаимных блокировок

Метод PHP transaction () принимает второй необязательный аргумент, с помощью которого задаётся число повторных попыток транзакции при возникновении взаимной блокировки (англ. deadlock). После истечения этих попыток будет выброшено исключение:

Ручное использование транзакций

Если вы хотите запустить транзакцию вручную и иметь полный контроль над её откатом и применением, используйте метод PHP beginTransaction () фасада DB :

Вы можете откатить транзакцию методом PHP rollback () :

Наконец, вы можете применить транзакцию методом PHP commit () :

Методы фасада DB для транзакций также контролируют транзакции построителя запросов и Eloquent ORM .

Транзакция — особое состояние БД, в котором выполняемые запросы либо все вместе успешно завершаются, либо (в случае ошибки) все их изменения откатываются. Это позволяет поддерживать целостность внутренней структуры данных. К примеру, если вы вставляете запись о заказе, а затем в отдельную таблицу добавляете товары, то при неуспешном выполнении скрипта (в том числе падения веб-сервера, ошибки в запросе и пр. ) СУБД автоматически удалит запись о заказе и все товары, которые вы успели добавить — прим. пер.

Иногда вам может понадобиться переподключиться и вы можете сделать это так:

Если вам нужно отключиться от данной БД из-за превышения основного предела экземпляров PDO max_connections, используйте метод PHP disconnect () :

Журнал запросов

По умолчанию Laravel записывает все SQL-запросы, выполненные в рамках текущего запроса страницы. Однако в некоторых случаях — например, при вставке большого набора записей — это может быть слишком ресурсозатратно. Для подключения журнала вы можете использовать метод PHP enableQueryLog () :

Чтобы получить массив выполненных запросов, вы можете использовать метод PHP getQueryLog () :

Комментарии (2)

Файла app/config/database.php не существует, но есть config/database.php

Жаль что так никто и не ответил за 5 лет человеку.
Аббревиатура app стандартно означает весь путь до папки приложения, поэтому вместо app принято подставлять например /var/www/html и в этом случае указание файла конфигурации вполне себе уместно. Единственно что для обозначения что это аббревиатура чаще всего пишут @app

Источник

Конструктор запросов

Query Builder → Community +1 015 31 мая 2015

Введение

Конструктор запросов Laravel предоставляет удобный, выразительный интерфейс для создания и выполнения запросов к базе данных. Он может использоваться для выполнения большинства типов операций и работает со всеми поддерживаемыми СУБД .

Конструктор запросов Laravel использует привязку параметров к запросам средствами PDO для защиты вашего приложения от SQL-инъекций. Нет необходимости экранировать строки перед их передачей в запрос.

Получение результатов

Получение всех записей таблицы

Используйте метод PHP table () фасада DB для создания запроса. Метод PHP table () возвращает экземпляр конструктора запросов для данной таблицы, позволяя вам «прицепить» к запросу дополнительные условия и в итоге получить результат методом PHP get () :

Метод PHP get () возвращает объект Illuminate\Support\Collection (для версии 5.2 и ранее — массив) c результатами, в котором каждый результат — это экземпляр PHP-объекта StdClass . Вы можете получить значение каждого столбца, обращаясь к столбцу как к свойству объекта:

Получение одной строки/столбца из таблицы

Если вам необходимо получить только одну строку из таблицы БД, используйте метод PHP first () . Этот метод вернёт один объект StdClass :

Если вам не нужна вся строка, вы можете извлечь одно значение из записи методом PHP value () . Этот метод вернёт значение конкретного столбца:

Получение списка всех значений одного столбца

Если вы хотите получить массив значений одного столбца, используйте метод PHP pluck () . В этом примере мы получим коллекцию (для версии 5.2 и ранее — массив) названий ролей:

Вы можете указать произвольный ключ для возвращаемой коллекции (для версии 5.2 и ранее — массива):

Если вы хотите получить массив значений одного столбца, используйте метод PHP lists () . В этом примере мы получим массив названий ролей:

Вы можете указать произвольный ключ для возвращаемого массива:

Получение результатов из таблицы «по кускам»

Если вам необходимо обработать тысячи записей БД, попробуйте использовать метод PHP chunk () . Этот метод получает небольшой «кусок» результатов за раз и отправляет его в замыкание для обработки. Этот метод очень полезен для написания Artisan-команд, которые обрабатывают тысячи записей. Например, давайте обработаем всю таблицу users «кусками» по 100 записей:

Вы можете остановить обработку последующих «кусков» вернув false из замыкания:

Агрегатные функции

Конструктор запросов содержит множество агрегатных методов, таких как count, max, min, avg и sum. Вы можете вызывать их после создания своего запроса:

Разумеется, вы можете комбинировать эти методы с другими условиями:

Выборка ( SELECT )

Указание столбцов для выборки

Само собой, не всегда вам необходимо выбрать все столбцы из таблицы БД. Используя метод PHP select () вы можете указать необходимые столбцы для запроса:

Метод PHP distinct () позволяет вернуть только отличающиеся результаты:

Если у вас уже есть экземпляр конструктора запросов и вы хотите добавить столбец к существующему набору для выборки, используйте метод PHP addSelect () :

Сырые выражения

Иногда вам может понадобиться использовать уже готовое SQL-выражение в вашем запросе. Такие выражения вставляются в запрос напрямую в виде строк, поэтому будьте внимательны и не допускайте возможностей для SQL-инъекций! Для создания сырого выражения используйте метод PHP DB :: raw () :

Объединения ( JOIN )

Объединение INNER JOIN

Конструктор запросов может быть использован для объединения данных из нескольких таблиц через PHP JOIN . Для выполнения обычного объединения «inner join» , используйте метод PHP join () на экземпляре конструктора запросов. Первый аргумент метода PHP join () — имя таблицы, к которой необходимо присоединить другие, а остальные аргументы указывают условия для присоединения столбцов. Как видите, вы можете объединять несколько таблиц одним запросом:

Объединение LEFT JOIN

Для выполнения объединения «left join» вместо «inner join» , используйте метод PHP leftJoin () . Этот метод имеет ту же сигнатуру, что и метод PHP join () :

Объединение CROSS JOIN

Для выполнения объединения CROSS JOIN используйте метод PHP crossJoin () с именем таблицы, с которой нужно произвести объединение. CROSS JOIN формирует таблицу перекрестным соединением (декартовым произведением) двух таблиц:

Сложные условия объединения

Вы можете указать более сложные условия для объединения. Для начала передайте замыкание вторым аргументом метода PHP join () . Замыкание будет получать объект JoinClause , позволяя вам указать условия для объединения:

Если вы хотите использовать стиль «where» для ваших объединений, то можете использовать для этого методы PHP where () и PHP orWhere () . Вместо сравнения двух столбцов эти методы будут сравнивать столбец и значение:

Слияние ( UNION )

Конструктор запросов позволяет создавать слияния двух запросов вместе. Например, вы можете создать начальный запрос и с помощью метода PHP union () слить его со вторым запросом:

Также существует метод PHP unionAll () с аналогичными параметрами.

Условия WHERE

Простые условия WHERE

Для добавления в запрос условий where используйте метод PHP where () на экземпляре конструктора запросов. Самый простой вызов PHP where () требует три аргумента. Первый — имя столбца. Второй — оператор (любой из поддерживаемых базой данных). Третий — значение для сравнения со столбцом.

Например, вот запрос, проверяющий равенство значения столбца «votes» и 100:

Для удобства, если вам необходимо просто проверить равенство значения столбца и данного значения, вы можете передать значение сразу вторым аргументом метода PHP where () :

Разумеется, вы можете использовать различные другие операторы при написании условия where :

В функцию PHP where () также можно передать массив условий:

Условия ИЛИ

Вы можете сцепить вместе условия where , а также условия or в запросе. Метод PHP orWhere () принимает те же аргументы, что и метод PHP where () :

Дополнительные условия WHERE

В интервале

Метод PHP whereBetween () проверяет, что значения столбца находится в указанном интервале:

Вне интервала

Метод PHP whereNotBetween () проверяет, что значения столбца находится вне указанного интервала:

Фильтрация по совпадению с массивом значений

Метод PHP whereIn () проверяет, что значения столбца содержатся в данном массиве:

Метод PHP whereNotIn () проверяет, что значения столбца не содержатся в данном массиве:

Поиск неустановленных значений ( NULL )

Метод PHP whereNull () проверяет, что значения столбца равны PHP NULL :

Метод PHP whereNotNull () проверяет, что значения столбца не равны PHP NULL :

whereDate / whereMonth / whereDay / whereYear

Метод PHP whereDate () служит для сравнения значения столбца с датой:

Метод PHP whereMonth () служит для сравнения значения столбца с месяцем в году:

Метод PHP whereDay () служит для сравнения значения столбца с днём месяца:

Метод PHP whereYear () служит для сравнения значения столбца с указанным годом:

Динамические условия WHERE

Вы можете использовать даже «динамические» условия where для гибкого построения операторов, используя магические методы:

whereColumn

Для проверки на совпадение двух столбцов можно использовать метод PHP whereColumn () :

В метод также можно передать оператор сравнения:

В метод PHP whereColumn () также можно передать массив с несколькими условиями. Эти условия будут объединены оператором AND :

Группировка условий

Иногда вам нужно сделать выборку по более сложным параметрам, таким как «существует ли» или вложенная группировка условий. Конструктор запросов Laravel справится и с такими запросами. Для начала посмотрим на пример группировки условий в скобках:

Как видите, передав замыкание в метод PHP orWhere () , мы дали конструктору запросов команду, начать группировку условий. Замыкание получит экземпляр конструктора запросов, который вы можете использовать для задания условий, поместив их в скобки. Приведённый пример выполнит такой SQL-запрос:

Проверка на существование

Метод PHP whereExists () позволяет написать SQL-условие where exists . Метод PHP whereExists () принимает в качестве аргумента замыкание, которое получит экземпляр конструктора запросов, позволяя вам определить запрос для помещения в условие «exists» :

Этот пример выполнит такой SQL-запрос:

JSON фильтрация ( WHERE )

Laravel также поддерживает запросы для столбцов типа JSON в тех БД, которые поддерживают тип столбцов JSON. На данный момент это MySQL 5.7 и Postgres. Для запроса JSON столбца используйте оператор -> :

Упорядочивание, группировка, предел и смещение

orderBy

Метод PHP orderBy () позволяет вам отсортировать результат запроса по заданному столбцу. Первый аргумент метода PHP orderBy () — столбец для сортировки по нему, а второй — задаёт направление сортировки и может быть либо asc , либо desc :

latest / oldest

Методы PHP latest () и PHP oldest () позволяют легко отсортировать результаты по дате. По умолчанию выполняется сортировка по столбцу created_at . Или вы можете передать имя столбца для сортировки по нему:

inRandomOrder

Для сортировки результатов запроса в случайном порядке можно использовать метод PHP inRandomOrder () . Например, вы можете использовать этот метод для выбора случайного пользователя:

groupBy / having / havingRaw

Методы PHP groupBy () и PHP having () используются для группировки результатов запроса. Сигнатура метода PHP having () аналогична методу PHP where () :

Метод PHP havingRaw () используется для передачи сырой строки в условие having . Например, мы можем найти все филиалы с объёмом продаж выше $2,500:

skip / take

Для ограничения числа возвращаемых результатов из запроса или для пропуска заданного числа результатов в запросе используются методы PHP skip () и PHP take () :

Или вы можете использовать методы PHP limit () и PHP offset () :

Условное применение условий

Иногда необходимо применять условие к запросу, только если выполняется какое-то другое условие. Например, выполнять оператор PHP where , только если нужное значение есть во входящем запросе. Это можно сделать с помощью метода PHP when () :

Метод PHP when () выполняет данное замыкание, только когда первый параметр равен PHP true . Если первый параметр равен PHP false , то замыкание не будет выполнено.

Вы можете передать ещё одно замыкание третьим параметром метода PHP when () . Это замыкание будет выполнено, если первый параметр будет иметь значение PHP false . Для демонстрации работы этой функции мы используем её для настройки сортировки по умолчанию для запроса:

Вставка ( INSERT )

Конструктор запросов предоставляет метод PHP insert () для вставки записей в таблицу БД. Метод PHP insert () принимает массив имён столбцов и значений:

Вы можете вставить в таблицу сразу несколько записей одним вызовом PHP insert () , передав ему массив массивов, каждый из которых — строка для вставки в таблицу:

Автоинкрементные ID

Если в таблице есть автоинкрементный ID, используйте метод PHP insertGetId () для вставки записи и получения её ID:

При использовании метода PHP insertGetId () для PostgreSQL автоинкрементное поле должно иметь имя PHP id . Если вы хотите получить ID из другого поля таблицы, вы можете передать его имя вторым аргументом.

Обновление ( UPDATE )

Разумеется, кроме вставки записей в БД конструктор запросов может и изменять существующие строки с помощью метода PHP update () . Метод PHP update () , как и метод PHP insert () , принимает массив столбцов и пар значений, содержащих столбцы для обновления. Вы можете ограничить запрос PHP update () условием PHP where () :

Обновление JSON-столбцов

При обновлении JSON-столбцов используйте синтаксис PHP -> для обращения к нужному ключу в JSON-объекте. Эта операция поддерживается только в БД, поддерживающих JSON-столбцы:

Increment и Decrement

Конструктор запросов предоставляет удобные методы для увеличения и уменьшения значений заданных столбцов. Это просто более выразительный и краткий способ по сравнению с написанием оператора update вручную.

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

Вы также можете указать дополнительные поля для изменения:

Удаление ( DELETE )

Конструктор запросов предоставляет метод PHP delete () для удаления записей из таблиц. Вы можете ограничить оператор PHP delete () , добавив условие PHP where () перед его вызовом:

Если вы хотите очистить таблицу (усечение), удалив все строки и обнулив счётчик ID, используйте метод PHP truncate () :

Усечение таблицы аналогично удалению всех её записей, а также сбросом счётчика autoincrement-полей. — прим. пер.

Пессимистическая блокировка

В конструкторе запросов есть несколько функций, которые помогают делать «пессимистическую блокировку» (pessimistic locking) для ваших операторов SELECT. Для запуска оператора SELECT с «разделяемой блокировкой» вы можете использовать в запросе метод PHP sharedLock () . Разделяемая блокировка предотвращает изменение выбранных строк до конца транзакции:

Или вы можете использовать метод PHP lockForUpdate () . Блокировка «для изменения» предотвращает изменение строк и их выбор другими разделяемыми блокировками:

Комментарии (4)

Возможно ли динамически составлять набор методов для выборки? В случае, если заранее набор условий неизвестен, я могу добавить их в RAW sql в цикле, но как реализовать добавление например where в цикле. И если в случае, если у меня только where, я могу добавить условия в массив, то если добавится LIKE, то как реализовать я уже не знаю. Есть какая нибудь информация?

Конечно поздно, но может другим понадобится. Если я правильно понял, то тебе нужно что то такое
$query = \DB::table(‘название таблицы’);
$query->where(‘что то сравниваешь’, ‘с чем то сравниваешь’);
$query->groupBy(‘id’)->get();

А как сделать чтобы выбрало где одно поле меньше другого поля в той же таблице. В Mysql запрос такого вида

Источник

Оцените статью