Mysql
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Mysql

Làm cách nào để triển khai câu lệnh sql của tôi trong Laravel?

Bạn có thể giải quyết vấn đề này bằng cách sử dụng DB::statement , DB:rawDB::select .

Mã được thử nghiệm trên môi trường thử nghiệm Laravel 5.0 của tôi và nó hoạt động hoàn hảo.

Câu lệnh mysql của bạn cũng đã được kiểm tra, nó hoạt động hoàn hảo trên bảng điều khiển MySQL.

Đây là mã:

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

Xem kết quả

echo "utilizador_id | nome <br />";

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

Hãy nhớ để thêm use DB; sau khoảng cách tên:

<?php

namespace App\Http\Controllers;

use DB;

Tôi đã tạo mã Xem kết quả chỉ để chứng minh tất cả kết quả đầu ra, nhưng cách thao tác dữ liệu trong mã của bạn là tùy thuộc vào bạn.

Kết quả kiểm tra

Kết quả ngẫu nhiên của câu lệnh mysql của bạn trong bảng điều khiển MySQL

Kết quả ngẫu nhiên về câu lệnh mysql của bạn trong Laravel

Lưu ý:

1- Tôi đã tự giải quyết câu hỏi này cho bạn nhưng tôi gặp phải một vấn đề nhỏ và tôi đã nhận được thông tin đầu vào từ Kryptonit3 trong diễn đàn Laracast.

2- Bạn có thể tìm thấy các giải pháp khác cho câu hỏi này hoặc nó có thể được giải quyết theo nhiều cách khác nhau, nhưng tôi đã chọn cách giải quyết theo cách này.

Bạn có thể tìm thấy câu hỏi và câu trả lời đầy đủ trong Chú thích 1 tại đây .




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Dữ liệu quá dài cho cột - tại sao?

  2. làm thế nào để so sánh hai bảng mysql trong php

  3. PHP sử dụng regex để lặp và truy vấn mysql để xuất ra tệp excel

  4. MySQL xử lý ÅÄÖ như AAO?

  5. hàm concat mysql