WhereIn and WhereIntegerInRaw method in Laravel

Khi bạn sử dụng mệnh đề WhereIn trong Laravel Eloquent, bạn có thể sẽ đạt đến số lượng tham số tối đa mà công cụ cơ sở dữ liệu của bạn hỗ trợ. Tùy thuộc vào công cụ cơ sở dữ liệu bạn sử dụng, số lượng tham số tối đa mà nó hỗ trợ có thể thấp tới 2100 (Microsoft SQL Server)

 

 $users_1 = App\Models\User::whereIn('id',[1,2,3])->get();
    //SELECT * FROM users WHERE id IN (1, 2, 3);
    dd($users_1->toArray());


    $users_2= App\Models\User::whereIntegerInRaw('id',[1,2,3])->get();
    // SELECT * FROM users WHERE id IN (1, 2, 3);
    dd($users_2->toArray());

Khi sử dụng WhereIn, thì SQL nó cần giữ chổ cho các vị trí như(?,?,?) trong câu truy vấn 
SELECT * FROM users WHERE id in (?, ?, ?)
Còn nếu bạn dùng whereIntegerInRaw(). Thì nó sẽ không cần phải đặt chổ trước. 
SELECT * FROM users WHERE id in (1, 2, 3), các số trong mảng nó sẽ điền vào trong câu lệnh luôn

Về hiệu suất xử lý thì whereIntegerInRaw sẽ nhanh hơn whereIn

Với một số vấn đề sau, thường bạn truy vấn whereIn với số lượng lớn id
ví dụ: User::whereIn('id', range(0, 9999))->get(); nó sẽ rất lâu với truy vấn số lượng lớn
Trong khi whereIntegerInRaw nó sẽ giúp bạn giải quyết vấn đề trên, chú ý mảng của nó phải là số nguyên

Bài Viết Liên Quan

x

Xin chào! Hãy ủng hộ chúng tôi bằng cách nhấp vào quảng cáo trên trang web. Việc này giúp chúng tôi có kinh phí để duy trì và phát triển website ngày một tốt hơn. (Hello! Please support us by clicking on the ads on this site. Your clicks provide us with the funds needed to maintain and improve the website continuously.)

Ngoài ra, hãy đăng ký kênh YouTube của chúng tôi để không bỏ lỡ những nội dung hữu ích! (Also, subscribe to our YouTube channel to stay updated with valuable content!)

Đăng Ký