Mysql
 sql >> Teknologi Basis Data >  >> RDS >> Mysql

Bagaimana cara mengimplementasikan pernyataan sql saya di Laravel?

Anda dapat menyelesaikan ini dengan menggunakan DB::statement , DB:raw dan DB::select .

Kode diuji pada lingkungan pengujian Laravel 5.0 saya dan berfungsi dengan sempurna.

Pernyataan mysql Anda juga diuji dan berfungsi sempurna di konsol MySQL.

Ini kodenya:

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;
        ")
    );

Lihat hasil

echo "utilizador_id | nome <br />";

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

Ingat untuk menambahkan use DB; setelah ruang nama:

<?php

namespace App\Http\Controllers;

use DB;

Saya telah membuat kode Lihat hasil hanya untuk mendemonstrasikan semua keluaran hasil, tetapi terserah Anda bagaimana memanipulasi data dalam kode Anda.

Hasil pengujian

Hasil acak dari pernyataan mysql Anda di konsol MySQL

Hasil acak dari pernyataan mysql Anda di Laravel

Catatan:

1- Saya telah memecahkan pertanyaan ini sendiri untuk Anda tetapi saya menghadapi sedikit masalah dan saya mendapat masukan dari Kryptonit3 di forum Laracast.

2- Anda mungkin menemukan solusi lain untuk pertanyaan ini atau dapat diselesaikan dengan cara yang berbeda, tetapi saya telah memilih untuk menyelesaikannya dengan cara ini.

Pertanyaan dan jawaban selengkapnya di Catatan 1, dapat ditemukan di sini .




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Dapatkan semua karakter sebelum spasi di MySQL

  2. Mengirim Kode HTML Melalui JSON

  3. referensi kolom kenaikan otomatis?

  4. tabel mysql dengan 40+ kolom

  5. Mempercepat perl DBI fetchrow_hashref