Как написать необработанный запрос в Laravel

Мне нужно написать необработанный запрос в базе данных Laravel: Query Builder, который выводит размер конкретной таблицы

В основном запросе mysql выглядит следующим образом

SELECT table_name "Name_of_the_table", table_rows "Rows Count", round(((data_length + index_length)/1024/1024),2)
"Table Size (MB)" FROM information_schema.TABLES WHERE table_schema = "Name_of_the_Database" AND table_name  = "Name_of_the_table";
Освоение архитектуры микросервисов с Laravel: Лучшие практики, преимущества и советы для разработчиков
Освоение архитектуры микросервисов с Laravel: Лучшие практики, преимущества и советы для разработчиков
В последние годы архитектура микросервисов приобрела популярность как способ построения масштабируемых и гибких приложений. Laravel , популярный PHP...
Как построить CRUD-приложение в Laravel
Как построить CRUD-приложение в Laravel
Laravel - это популярный PHP-фреймворк, который позволяет быстро и легко создавать веб-приложения. Одной из наиболее распространенных задач в...
Освоение PHP и управление базами данных: Создание собственной СУБД - часть II
Освоение PHP и управление базами данных: Создание собственной СУБД - часть II
В предыдущем посте мы создали функциональность вставки и чтения для нашей динамической СУБД. В этом посте мы собираемся реализовать функции обновления...
Документирование API с помощью Swagger на Springboot
Документирование API с помощью Swagger на Springboot
В предыдущей статье мы уже узнали, как создать Rest API с помощью Springboot и MySql .
Роли и разрешения пользователей без пакета Laravel 9
Роли и разрешения пользователей без пакета Laravel 9
Этот пост изначально был опубликован на techsolutionstuff.com .
Как установить LAMP Stack - Security 5/5 на виртуальную машину Azure Linux VM
Как установить LAMP Stack - Security 5/5 на виртуальную машину Azure Linux VM
В предыдущей статье мы завершили установку базы данных, для тех, кто не знает.
6
0
9 954
2
Перейти к ответу Данный вопрос помечен как решенный

Ответы 2

Ответ принят как подходящий

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

$sql = 'SELECT table_name "Name_of_the_table", table_rows "Rows Count", round(((data_length + index_length)/1024/1024),2)
"Table Size (MB)" FROM information_schema.TABLES WHERE table_schema = "Name_of_the_Database" AND table_name  = "Name_of_the_table"';

$results = DB::select($sql);

Даже вам не нужно использовать DB::raw() для выбора по необработанному запросу. DB:select() сделает все за вас.

Abdulrehman Sheikh 20.02.2019 08:22

Используйте БД; //в верхней части контроллера, и это прекрасно. Спасибо, требуется несколько минут, чтобы сделать его зеленым :D :D :D

Hemant Maurya 20.02.2019 08:34

Используйте БД; или вы можете использовать \DB::select($sql); а также .. Спасибо своему брату красоты laravel

Abdulrehman Sheikh 20.02.2019 08:36

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

$data = DB::table('information_schema.TABLES')
    ->where('table_schema', 'Name_of_the_Database')
    ->where('table_name', 'Name_of_the_table')
    ->select(
        'table_name as "Name_of_the_table"',
        'table_rows as "Rows Count"',
         DB::raw('round(((data_length + index_length)/1024/1024),2) as "Table Size (MB)"')
    )
    ->first();

Это очень помогло, спасибо! Я использовал это, чтобы получить количество строк для очень большой таблицы при подсчете ошибок. Я просто перефразирую вопрос, чтобы он отображался и при поиске по этому запросу ;-)

tabacitu 21.09.2020 14:44

Другие вопросы по теме