Как написать необработанный запрос в Laravel - PullRequest
0 голосов
/ 20 февраля 2019

Мне нужно написать необработанный запрос в базе данных 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";

Ответы [ 2 ]

0 голосов
/ 20 февраля 2019

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

$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();
0 голосов
/ 20 февраля 2019

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