Mysql
 sql >> база данни >  >> RDS >> Mysql

Как да внедря моя sql израз в Laravel?

Можете да решите това, като използвате DB::statement , DB:raw и DB::select .

Кодът е тестван в моята тестова среда Laravel 5.0 и работи перфектно.

Вашият mysql израз също е тестван и работи перфектно на MySQL конзолата.

Ето кода:

DB::statement(DB::raw('SET @prev=0,@rownum=0'));

$results =
    DB::select(
        DB::raw("
          SELECT utilizador_id, nome
          FROM (
            SELECT *,
                 IF( @prev <> utilizador_id,
                     @rownum := 1,
                     @rownum := @rownum+1
                 ) AS rank,
                 @prev := utilizador_id,
                 @rownum
            FROM (
              SELECT * FROM `anuncios`
              ORDER BY utilizador_id, rand()
            ) AS random_ads
          ) AS ads_ranked
          WHERE rank <= 2;
        ")
    );

Вижте резултатите

echo "utilizador_id | nome <br />";

foreach ($results as $result)
{
    echo $result->utilizador_id . "__________| " . $result->nome . "<br />";
}

Запомнете към добавен use DB; след пространството за имена:

<?php

namespace App\Http\Controllers;

use DB;

Направих кода за преглед на резултатите само за демонстриране на всички резултати, но от вас зависи как да манипулирате данните във вашия код.

Резултати от теста

Произволни резултати от вашия оператор mysql в MySQL конзолата

Произволни резултати от вашия оператор mysql в Laravel

Забележка:

1- Сам разреших този въпрос за вас, но се сблъсках с малък проблем и получих информация от Kryptonit3 във форума на Laracast.

2- Може да намерите други решения на този въпрос или той може да бъде решен по различни начини, но аз избрах да реша този начин.

Пълният въпрос и отговор в Бележка 1 могат да бъдат намерени тук .




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Използване на libpqxx за съхраняване на данни в насипно състояние ИЛИ как да използвате израз COPY в libpqxx

  2. Създайте нова таблица от обединяване на две таблици с обединение

  3. Надграждане на Wamp Server до MySQL 8.0.15

  4. PHP заявката не показва всички резултати в html таблицата

  5. Използване на Magento API срещу обикновен MySQL