WhereIn hoạt động như thế nào trong Laravel?

Laravel cung cấp nhiều phương thức hùng hồn khác nhau. Trong hướng dẫn ví dụ về truy vấn với cột này, bạn sẽ biết cách sử dụng phương thức whereIn[] của laravel để xây dựng truy vấn với mô hình laravel và trình tạo truy vấn

Hướng dẫn này cung cấp cho bạn các ví dụ đơn giản về phương thức laravel trong đó trên trình tạo truy vấn và mô hình với các cột. Và cũng như cách sử dụng laravel hùng hồn trong đó với mảng

Cú pháp sau đại diện cho phương thức hùng hồn whereIn trong laravel

whereIn[Coulumn_name, Array];

Đây,

  • Tên cột dọc. - Tên cột bảng cơ sở dữ liệu của bạn
  • Mảng. – mảng với các giá trị được phân tách bằng dấu phẩy

Hãy cùng xem một số ví dụ về phương thức hùng biện whereIn[] trong laravel

ví dụ 1. trong đó Truy vấn Sử dụng Truy vấn SQL Đơn giản

SELECT *  FROM users  WHERE id IN [10, 15, 18] 

Trong truy vấn này, dữ liệu sẽ được lấy từ bảng DB. Id của ai sẽ là 10, 15, 18

ví dụ 2. Eloquent Wherein Query Sử dụng Trình tạo truy vấn

public function index[]
{
    $data = DB::table['users']
                ->whereIn['id', [10, 15, 18]]
                ->get[];
  
    dd[$data];                    
}

Khuyến khích. - Ví dụ về Laravel có nhiều cột

ví dụ 3. Eloquent Wherein Query Sử dụng Mô hình Laravel

public function index[]
{
    $data= User::whereIn['id', [10, 15, 18]]->get[];
  
    dd[$data];                    
}

Cho đến nay bạn đã thấy trong ví dụ đã cho. Đã sử dụng id để lấy dữ liệu vào bảng db. Nhưng bây giờ với ví dụ 4, chúng ta sẽ tìm nạp dữ liệu bằng cách sử dụng tên cột của bảng DB

Khuyến khích. - Ví dụ truy vấn con whereIn và whereNotIn của Laravel

Ví dụ 4. Eloquent Wherein Query sử dụng mô hình Laravel với tên cột khác nhau

public function index[]
{
    $data= User::whereIn['name', ['john','dam','smith']]->get[];
  
    dd[$data];                    
}

Phần kết luận

Hướng dẫn ví dụ truy vấn trong đó của Laravel, bạn đã học cách sử dụng phương thức trong đó [] của laravel với trình tạo và mô hình truy vấn hùng hồn

Nếu bạn cần sử dụng SQL trong đó truy vấn trong laravel thì bạn có thể sử dụng với mảng. Laravel cung cấp wherein[] để sử dụng SQL wherein truy vấn. trong wherein[] chúng ta chỉ cần truyền hai đối số một là tên cột và một là một mảng id hoặc bất cứ thứ gì bạn muốn

Bạn có thể xem cú pháp bên dưới về truy vấn trong đó trong laravel

whereIn[Coulumn_name, Array];

Bây giờ tôi sẽ cung cấp cho bạn ba ví dụ về cách sử dụng truy vấn wherein trong ứng dụng laravel. Vì vậy, hãy xem những ví dụ đó hoạt động như thế nào

ví dụ 1

Truy vấn SQL

SELECT *
FROM users
WHERE id IN [4, 5, 6]

Truy vấn Laravel

public function index[]{$users = User::select["*"]
->whereIn['id', [4, 5, 6]]
->get[];
dd[$users];
}

ví dụ 2

Đây là một ví dụ khác về truy vấn trong đó. Bạn có thể làm việc với các giá trị chuỗi được phân tách bằng dấu phẩy. bạn có thể làm việc như dưới đây

Trình xây dựng truy vấn cơ sở dữ liệu của Laravel cung cấp một giao diện thuận tiện, trôi chảy để tạo và chạy các truy vấn cơ sở dữ liệu. Nó có thể được sử dụng để thực hiện hầu hết các hoạt động cơ sở dữ liệu trong ứng dụng của bạn và hoạt động hoàn hảo với tất cả các hệ thống cơ sở dữ liệu được Laravel hỗ trợ

Trình tạo truy vấn Laravel sử dụng liên kết tham số PDO để bảo vệ ứng dụng của bạn khỏi các cuộc tấn công SQL injection. Không cần làm sạch hoặc khử trùng các chuỗi được chuyển đến trình tạo truy vấn dưới dạng liên kết truy vấn

Cảnh báo
PDO không hỗ trợ tên cột ràng buộc. Do đó, bạn không bao giờ nên cho phép đầu vào của người dùng đọc tên cột được truy vấn của bạn tham chiếu, bao gồm cả cột "sắp xếp theo".

Chạy truy vấn cơ sở dữ liệu

Lấy tất cả các hàng từ một bảng

Bạn có thể sử dụng phương thức

DB::table['users']->where['active', false]

->chunkById[100, function [$users] {

->update[['active' => true]];

1 do mặt tiền

DB::table['users']->where['active', false]

->chunkById[100, function [$users] {

->update[['active' => true]];

2 cung cấp để bắt đầu truy vấn. Phương thức

DB::table['users']->where['active', false]

->chunkById[100, function [$users] {

->update[['active' => true]];

1 trả về một phiên bản trình tạo truy vấn trôi chảy cho bảng đã cho, cho phép bạn xâu chuỗi nhiều ràng buộc hơn vào truy vấn và cuối cùng truy xuất kết quả của truy vấn bằng phương thức

DB::table['users']->where['active', false]

->chunkById[100, function [$users] {

->update[['active' => true]];

4

SELECT *  FROM users  WHERE id IN [10, 15, 18] 
2

Phương thức

DB::table['users']->where['active', false]

->chunkById[100, function [$users] {

->update[['active' => true]];

4 trả về một phiên bản

DB::table['users']->where['active', false]

->chunkById[100, function [$users] {

->update[['active' => true]];

6 chứa các kết quả của truy vấn trong đó mỗi kết quả là một phiên bản của đối tượng PHP

DB::table['users']->where['active', false]

->chunkById[100, function [$users] {

->update[['active' => true]];

7. Bạn có thể truy cập giá trị của từng cột bằng cách truy cập cột dưới dạng thuộc tính của đối tượng

SELECT *  FROM users  WHERE id IN [10, 15, 18] 
6

Lưu ý
Các bộ sưu tập của Laravel cung cấp nhiều phương thức cực kỳ mạnh mẽ để ánh xạ và thu gọn dữ liệu. Để biết thêm thông tin về các bộ sưu tập Laravel, hãy xem tài liệu về bộ sưu tập.

Truy xuất một hàng/cột từ một bảng

Nếu bạn chỉ cần truy xuất một hàng từ bảng cơ sở dữ liệu, bạn có thể sử dụng phương thức

DB::table['users']->where['active', false]

->chunkById[100, function [$users] {

->update[['active' => true]];

9 của mặt tiền

DB::table['users']->where['active', false]

->chunkById[100, function [$users] {

->update[['active' => true]];

2. Phương thức này sẽ trả về một đối tượng

DB::table['users']->where['active', false]

->chunkById[100, function [$users] {

->update[['active' => true]];

7 duy nhất

public function index[]
{
    $data = DB::table['users']
                ->whereIn['id', [10, 15, 18]]
                ->get[];
  
    dd[$data];                    
}
0

Nếu bạn không cần toàn bộ hàng, bạn có thể trích xuất một giá trị từ bản ghi bằng phương thức

SELECT *  FROM users  WHERE id IN [10, 15, 18] 
601. Phương thức này sẽ trả về giá trị của cột trực tiếp

public function index[]
{
    $data = DB::table['users']
                ->whereIn['id', [10, 15, 18]]
                ->get[];
  
    dd[$data];                    
}
2

Để truy xuất một hàng theo giá trị cột

SELECT *  FROM users  WHERE id IN [10, 15, 18] 
602 của nó, hãy sử dụng phương thức
SELECT *  FROM users  WHERE id IN [10, 15, 18] 
603

public function index[]
{
    $data = DB::table['users']
                ->whereIn['id', [10, 15, 18]]
                ->get[];
  
    dd[$data];                    
}
5

Truy xuất danh sách các giá trị cột

Nếu bạn muốn truy xuất một phiên bản

DB::table['users']->where['active', false]

->chunkById[100, function [$users] {

->update[['active' => true]];

6 chứa các giá trị của một cột, bạn có thể sử dụng phương thức
SELECT *  FROM users  WHERE id IN [10, 15, 18] 
605. Trong ví dụ này, chúng tôi sẽ truy xuất một bộ sưu tập tiêu đề người dùng

public function index[]
{
    $data = DB::table['users']
                ->whereIn['id', [10, 15, 18]]
                ->get[];
  
    dd[$data];                    
}
8

Bạn có thể chỉ định cột mà bộ sưu tập kết quả sẽ sử dụng làm khóa của nó bằng cách cung cấp đối số thứ hai cho phương thức

SELECT *  FROM users  WHERE id IN [10, 15, 18] 
605

public function index[]
{
    $data= User::whereIn['id', [10, 15, 18]]->get[];
  
    dd[$data];                    
}
0

Kết quả Chunking

Nếu bạn cần làm việc với hàng nghìn bản ghi cơ sở dữ liệu, hãy cân nhắc sử dụng phương pháp

SELECT *  FROM users  WHERE id IN [10, 15, 18] 
607 do mặt tiền

DB::table['users']->where['active', false]

->chunkById[100, function [$users] {

->update[['active' => true]];

2 cung cấp. Phương pháp này truy xuất một đoạn nhỏ kết quả tại một thời điểm và đưa từng đoạn đó vào một bao đóng để xử lý. Ví dụ: hãy truy xuất toàn bộ bảng
SELECT *  FROM users  WHERE id IN [10, 15, 18] 
609 theo khối 100 bản ghi cùng một lúc

public function index[]
{
    $data= User::whereIn['id', [10, 15, 18]]->get[];
  
    dd[$data];                    
}
4

Bạn có thể ngăn các khối tiếp theo được xử lý bằng cách trả lại

SELECT *  FROM users  WHERE id IN [10, 15, 18] 
610 từ quá trình đóng

public function index[]
{
    $data= User::whereIn['id', [10, 15, 18]]->get[];
  
    dd[$data];                    
}
6

Nếu bạn đang cập nhật bản ghi cơ sở dữ liệu trong khi phân đoạn kết quả, kết quả phân đoạn của bạn có thể thay đổi theo những cách không mong muốn. Nếu bạn định cập nhật các bản ghi đã truy xuất trong khi phân đoạn, thì tốt nhất bạn nên sử dụng phương pháp

SELECT *  FROM users  WHERE id IN [10, 15, 18] 
611 để thay thế. Phương pháp này sẽ tự động phân trang kết quả dựa trên khóa chính của bản ghi

________số 8

Cảnh báo
Khi cập nhật hoặc xóa bản ghi bên trong hàm gọi lại đoạn mã, bất kỳ thay đổi nào đối với khóa chính hoặc khóa ngoại đều có thể ảnh hưởng đến truy vấn đoạn mã. Điều này có khả năng dẫn đến việc các bản ghi không được đưa vào kết quả phân đoạn.

Truyền kết quả một cách lười biếng

Phương thức

SELECT *  FROM users  WHERE id IN [10, 15, 18] 
612 hoạt động tương tự như phương thức
SELECT *  FROM users  WHERE id IN [10, 15, 18] 
607 theo nghĩa là nó thực thi truy vấn theo khối. Tuy nhiên, thay vì chuyển từng đoạn vào một cuộc gọi lại, phương thức
SELECT *  FROM users  WHERE id IN [10, 15, 18] 
614 trả về một
SELECT *  FROM users  WHERE id IN [10, 15, 18] 
615, cho phép bạn tương tác với các kết quả dưới dạng một luồng đơn

SELECT *  FROM users  WHERE id IN [10, 15, 18] 
60

Một lần nữa, nếu bạn dự định cập nhật các bản ghi đã truy xuất trong khi lặp lại chúng, thì tốt nhất bạn nên sử dụng các phương pháp

SELECT *  FROM users  WHERE id IN [10, 15, 18] 
616 hoặc
SELECT *  FROM users  WHERE id IN [10, 15, 18] 
617 để thay thế. Các phương thức này sẽ tự động phân trang kết quả dựa trên khóa chính của bản ghi

SELECT *  FROM users  WHERE id IN [10, 15, 18] 
61

Cảnh báo
Khi cập nhật hoặc xóa bản ghi trong khi lặp lại chúng, mọi thay đổi đối với khóa chính hoặc khóa ngoại có thể ảnh hưởng đến truy vấn đoạn. Điều này có khả năng dẫn đến các bản ghi không được đưa vào kết quả.

uẩn

Trình tạo truy vấn cũng cung cấp nhiều phương thức để truy xuất các giá trị tổng hợp như

SELECT *  FROM users  WHERE id IN [10, 15, 18] 
618,
SELECT *  FROM users  WHERE id IN [10, 15, 18] 
619,
SELECT *  FROM users  WHERE id IN [10, 15, 18] 
620,
SELECT *  FROM users  WHERE id IN [10, 15, 18] 
621 và
SELECT *  FROM users  WHERE id IN [10, 15, 18] 
622. Bạn có thể gọi bất kỳ phương thức nào sau khi xây dựng truy vấn của mình

SELECT *  FROM users  WHERE id IN [10, 15, 18] 
62

Tất nhiên, bạn có thể kết hợp các phương pháp này với các mệnh đề khác để tinh chỉnh cách tính giá trị tổng hợp của mình

SELECT *  FROM users  WHERE id IN [10, 15, 18] 
63

Xác định nếu hồ sơ tồn tại

Thay vì sử dụng phương pháp

SELECT *  FROM users  WHERE id IN [10, 15, 18] 
618 để xác định xem có bất kỳ bản ghi nào phù hợp với các ràng buộc của truy vấn của bạn hay không, bạn có thể sử dụng phương pháp
SELECT *  FROM users  WHERE id IN [10, 15, 18] 
624 và
SELECT *  FROM users  WHERE id IN [10, 15, 18] 
625

SELECT *  FROM users  WHERE id IN [10, 15, 18] 
64

Chọn báo cáo

Chỉ định một mệnh đề chọn

Bạn có thể không phải lúc nào cũng muốn chọn tất cả các cột từ bảng cơ sở dữ liệu. Sử dụng phương pháp

SELECT *  FROM users  WHERE id IN [10, 15, 18] 
626, bạn có thể chỉ định mệnh đề "chọn" tùy chỉnh cho truy vấn

SELECT *  FROM users  WHERE id IN [10, 15, 18] 
65

Phương thức

SELECT *  FROM users  WHERE id IN [10, 15, 18] 
627 cho phép bạn buộc truy vấn trả về các kết quả khác biệt

SELECT *  FROM users  WHERE id IN [10, 15, 18] 
66

Nếu bạn đã có một phiên bản trình tạo truy vấn và bạn muốn thêm một cột vào mệnh đề chọn hiện có của nó, bạn có thể sử dụng phương thức

SELECT *  FROM users  WHERE id IN [10, 15, 18] 
628

SELECT *  FROM users  WHERE id IN [10, 15, 18] 
67

biểu thức thô

Đôi khi bạn có thể cần chèn một chuỗi tùy ý vào truy vấn. Để tạo biểu thức chuỗi thô, bạn có thể sử dụng phương thức

SELECT *  FROM users  WHERE id IN [10, 15, 18] 
629 được cung cấp bởi mặt tiền

DB::table['users']->where['active', false]

->chunkById[100, function [$users] {

->update[['active' => true]];

2

SELECT *  FROM users  WHERE id IN [10, 15, 18] 
68

Cảnh báo
Các câu lệnh thô sẽ được đưa vào truy vấn dưới dạng chuỗi, vì vậy bạn phải cực kỳ cẩn thận để tránh tạo lỗ hổng SQL injection.

phương pháp thô

Thay vì sử dụng phương pháp

SELECT *  FROM users  WHERE id IN [10, 15, 18] 
631, bạn cũng có thể sử dụng các phương pháp sau để chèn một biểu thức thô vào các phần khác nhau của truy vấn của mình. Hãy nhớ rằng, Laravel không thể đảm bảo rằng bất kỳ truy vấn nào sử dụng biểu thức thô đều được bảo vệ trước các lỗ hổng SQL injection

SELECT *  FROM users  WHERE id IN [10, 15, 18] 
632

Phương pháp

SELECT *  FROM users  WHERE id IN [10, 15, 18] 
632 có thể được sử dụng thay cho
SELECT *  FROM users  WHERE id IN [10, 15, 18] 
634. Phương thức này chấp nhận một mảng liên kết tùy chọn làm đối số thứ hai của nó

SELECT *  FROM users  WHERE id IN [10, 15, 18] 
69

SELECT *  FROM users  WHERE id IN [10, 15, 18] 
635

Các phương thức

SELECT *  FROM users  WHERE id IN [10, 15, 18] 
636 và
SELECT *  FROM users  WHERE id IN [10, 15, 18] 
637 có thể được sử dụng để đưa mệnh đề "where" thô vào truy vấn của bạn. Các phương thức này chấp nhận một mảng liên kết tùy chọn làm đối số thứ hai của chúng

public function index[]
{
    $data = DB::table['users']
                ->whereIn['id', [10, 15, 18]]
                ->get[];
  
    dd[$data];                    
}
00

SELECT *  FROM users  WHERE id IN [10, 15, 18] 
638

Các phương thức

SELECT *  FROM users  WHERE id IN [10, 15, 18] 
639 và
SELECT *  FROM users  WHERE id IN [10, 15, 18] 
640 có thể được sử dụng để cung cấp một chuỗi thô làm giá trị của mệnh đề "có". Các phương thức này chấp nhận một mảng liên kết tùy chọn làm đối số thứ hai của chúng

public function index[]
{
    $data = DB::table['users']
                ->whereIn['id', [10, 15, 18]]
                ->get[];
  
    dd[$data];                    
}
01

SELECT *  FROM users  WHERE id IN [10, 15, 18] 
641

Phương thức

SELECT *  FROM users  WHERE id IN [10, 15, 18] 
641 có thể được sử dụng để cung cấp một chuỗi thô làm giá trị của mệnh đề "order by"

public function index[]
{
    $data = DB::table['users']
                ->whereIn['id', [10, 15, 18]]
                ->get[];
  
    dd[$data];                    
}
02

SELECT *  FROM users  WHERE id IN [10, 15, 18] 
643

Phương thức

SELECT *  FROM users  WHERE id IN [10, 15, 18] 
643 có thể được sử dụng để cung cấp một chuỗi thô làm giá trị của mệnh đề
SELECT *  FROM users  WHERE id IN [10, 15, 18] 
645

public function index[]
{
    $data = DB::table['users']
                ->whereIn['id', [10, 15, 18]]
                ->get[];
  
    dd[$data];                    
}
03

tham gia

Mệnh đề tham gia bên trong

Trình tạo truy vấn cũng có thể được sử dụng để thêm mệnh đề nối vào truy vấn của bạn. Để thực hiện "liên kết bên trong" cơ bản, bạn có thể sử dụng phương thức

SELECT *  FROM users  WHERE id IN [10, 15, 18] 
646 trên phiên bản trình tạo truy vấn. Đối số đầu tiên được truyền cho phương thức
SELECT *  FROM users  WHERE id IN [10, 15, 18] 
646 là tên của bảng mà bạn cần nối, trong khi các đối số còn lại chỉ định các ràng buộc cột cho phép nối. Bạn thậm chí có thể tham gia nhiều bảng trong một truy vấn

public function index[]
{
    $data = DB::table['users']
                ->whereIn['id', [10, 15, 18]]
                ->get[];
  
    dd[$data];                    
}
04

Tham gia bên trái / Điều khoản tham gia bên phải

Nếu bạn muốn thực hiện "nối trái" hoặc "nối phải" thay vì "nối bên trong", hãy sử dụng các phương thức

SELECT *  FROM users  WHERE id IN [10, 15, 18] 
648 hoặc
SELECT *  FROM users  WHERE id IN [10, 15, 18] 
649. Các phương thức này có cùng chữ ký với phương thức
SELECT *  FROM users  WHERE id IN [10, 15, 18] 
646

public function index[]
{
    $data = DB::table['users']
                ->whereIn['id', [10, 15, 18]]
                ->get[];
  
    dd[$data];                    
}
05

Điều khoản tham gia chéo

Bạn có thể sử dụng phương pháp

SELECT *  FROM users  WHERE id IN [10, 15, 18] 
651 để thực hiện "nối chéo". Tham gia chéo tạo ra một sản phẩm cartesian giữa bảng đầu tiên và bảng đã tham gia

public function index[]
{
    $data = DB::table['users']
                ->whereIn['id', [10, 15, 18]]
                ->get[];
  
    dd[$data];                    
}
06

Điều khoản tham gia nâng cao

Bạn cũng có thể chỉ định các mệnh đề nối nâng cao hơn. Để bắt đầu, hãy chuyển một bao đóng làm đối số thứ hai cho phương thức

SELECT *  FROM users  WHERE id IN [10, 15, 18] 
646. Việc đóng sẽ nhận được một phiên bản
SELECT *  FROM users  WHERE id IN [10, 15, 18] 
653 cho phép bạn chỉ định các ràng buộc đối với mệnh đề "tham gia"

public function index[]
{
    $data = DB::table['users']
                ->whereIn['id', [10, 15, 18]]
                ->get[];
  
    dd[$data];                    
}
07

Nếu bạn muốn sử dụng mệnh đề "where" trong các liên kết của mình, bạn có thể sử dụng các phương thức

SELECT *  FROM users  WHERE id IN [10, 15, 18] 
654 và
SELECT *  FROM users  WHERE id IN [10, 15, 18] 
655 được cung cấp bởi đối tượng
SELECT *  FROM users  WHERE id IN [10, 15, 18] 
656. Thay vì so sánh hai cột, các phương thức này sẽ so sánh cột với một giá trị

public function index[]
{
    $data = DB::table['users']
                ->whereIn['id', [10, 15, 18]]
                ->get[];
  
    dd[$data];                    
}
08

Tham gia truy vấn con

Bạn có thể sử dụng các phương thức

SELECT *  FROM users  WHERE id IN [10, 15, 18] 
657,
SELECT *  FROM users  WHERE id IN [10, 15, 18] 
658 và
SELECT *  FROM users  WHERE id IN [10, 15, 18] 
659 để nối truy vấn với truy vấn con. Mỗi phương thức này nhận được ba đối số. truy vấn con, bí danh bảng của nó và một bao đóng xác định các cột liên quan. Trong ví dụ này, chúng tôi sẽ truy xuất một tập hợp người dùng trong đó mỗi bản ghi người dùng cũng chứa dấu thời gian
SELECT *  FROM users  WHERE id IN [10, 15, 18] 
660 của bài đăng blog được xuất bản gần đây nhất của người dùng

public function index[]
{
    $data = DB::table['users']
                ->whereIn['id', [10, 15, 18]]
                ->get[];
  
    dd[$data];                    
}
09

đoàn thể

Trình tạo truy vấn cũng cung cấp một phương thức thuận tiện để "kết hợp" hai hoặc nhiều truy vấn lại với nhau. Ví dụ: bạn có thể tạo một truy vấn ban đầu và sử dụng phương thức

SELECT *  FROM users  WHERE id IN [10, 15, 18] 
661 để kết hợp truy vấn đó với nhiều truy vấn hơn

public function index[]
{
    $data = DB::table['users']
                ->whereIn['id', [10, 15, 18]]
                ->get[];
  
    dd[$data];                    
}
20

Ngoài phương thức

SELECT *  FROM users  WHERE id IN [10, 15, 18] 
661, trình xây dựng truy vấn cung cấp phương thức
SELECT *  FROM users  WHERE id IN [10, 15, 18] 
663. Các truy vấn được kết hợp bằng phương pháp
SELECT *  FROM users  WHERE id IN [10, 15, 18] 
663 sẽ không bị xóa các kết quả trùng lặp. Phương thức
SELECT *  FROM users  WHERE id IN [10, 15, 18] 
663 có chữ ký phương thức giống như phương thức
SELECT *  FROM users  WHERE id IN [10, 15, 18] 
661

Các mệnh đề cơ bản

mệnh đề ở đâu

Bạn có thể sử dụng phương thức

SELECT *  FROM users  WHERE id IN [10, 15, 18] 
654 của trình tạo truy vấn để thêm mệnh đề "where" vào truy vấn. Cuộc gọi cơ bản nhất đến phương thức
SELECT *  FROM users  WHERE id IN [10, 15, 18] 
654 yêu cầu ba đối số. Đối số đầu tiên là tên của cột. Đối số thứ hai là một toán tử, có thể là bất kỳ toán tử nào được cơ sở dữ liệu hỗ trợ. Đối số thứ ba là giá trị để so sánh với giá trị của cột

Ví dụ: truy vấn sau truy xuất những người dùng có giá trị của cột

SELECT *  FROM users  WHERE id IN [10, 15, 18] 
669 bằng
SELECT *  FROM users  WHERE id IN [10, 15, 18] 
670 và giá trị của cột
SELECT *  FROM users  WHERE id IN [10, 15, 18] 
671 lớn hơn
SELECT *  FROM users  WHERE id IN [10, 15, 18] 
672

public function index[]
{
    $data = DB::table['users']
                ->whereIn['id', [10, 15, 18]]
                ->get[];
  
    dd[$data];                    
}
21

Để thuận tiện, nếu bạn muốn xác minh rằng một cột là

SELECT *  FROM users  WHERE id IN [10, 15, 18] 
673 với một giá trị nhất định, bạn có thể chuyển giá trị đó làm đối số thứ hai cho phương thức
SELECT *  FROM users  WHERE id IN [10, 15, 18] 
654. Laravel sẽ cho rằng bạn muốn sử dụng toán tử
SELECT *  FROM users  WHERE id IN [10, 15, 18] 
673

public function index[]
{
    $data = DB::table['users']
                ->whereIn['id', [10, 15, 18]]
                ->get[];
  
    dd[$data];                    
}
22

Như đã đề cập trước đây, bạn có thể sử dụng bất kỳ toán tử nào được hệ thống cơ sở dữ liệu của bạn hỗ trợ

public function index[]
{
    $data = DB::table['users']
                ->whereIn['id', [10, 15, 18]]
                ->get[];
  
    dd[$data];                    
}
23

Bạn cũng có thể chuyển một mảng điều kiện cho hàm

SELECT *  FROM users  WHERE id IN [10, 15, 18] 
654. Mỗi phần tử của mảng phải là một mảng chứa ba đối số thường được truyền cho phương thức
SELECT *  FROM users  WHERE id IN [10, 15, 18] 
654

public function index[]
{
    $data = DB::table['users']
                ->whereIn['id', [10, 15, 18]]
                ->get[];
  
    dd[$data];                    
}
24

Cảnh báo
PDO không hỗ trợ tên cột ràng buộc. Do đó, bạn không bao giờ nên cho phép đầu vào của người dùng đọc tên cột được truy vấn của bạn tham chiếu, bao gồm cả cột "sắp xếp theo".

Hoặc mệnh đề Where

Khi xâu chuỗi các lời gọi đến phương thức

SELECT *  FROM users  WHERE id IN [10, 15, 18] 
654 của trình tạo truy vấn, các mệnh đề "where" sẽ được nối với nhau bằng cách sử dụng toán tử
SELECT *  FROM users  WHERE id IN [10, 15, 18] 
679. Tuy nhiên, bạn có thể sử dụng phương pháp
SELECT *  FROM users  WHERE id IN [10, 15, 18] 
655 để nối một mệnh đề vào truy vấn bằng cách sử dụng toán tử
SELECT *  FROM users  WHERE id IN [10, 15, 18] 
681. Phương thức
SELECT *  FROM users  WHERE id IN [10, 15, 18] 
655 chấp nhận các đối số giống như phương thức
SELECT *  FROM users  WHERE id IN [10, 15, 18] 
654

public function index[]
{
    $data = DB::table['users']
                ->whereIn['id', [10, 15, 18]]
                ->get[];
  
    dd[$data];                    
}
21

Nếu bạn cần nhóm một điều kiện "hoặc" trong ngoặc đơn, bạn có thể chuyển một bao đóng làm đối số đầu tiên cho phương thức

SELECT *  FROM users  WHERE id IN [10, 15, 18] 
655

public function index[]
{
    $data = DB::table['users']
                ->whereIn['id', [10, 15, 18]]
                ->get[];
  
    dd[$data];                    
}
26

Ví dụ trên sẽ tạo ra SQL sau

public function index[]
{
    $data = DB::table['users']
                ->whereIn['id', [10, 15, 18]]
                ->get[];
  
    dd[$data];                    
}
27

Cảnh báo
Bạn phải luôn nhóm các cuộc gọi

SELECT *  FROM users  WHERE id IN [10, 15, 18] 
655 để tránh hành vi không mong muốn khi áp dụng phạm vi toàn cầu.

Mệnh đề Where Not

Các phương pháp

SELECT *  FROM users  WHERE id IN [10, 15, 18] 
686 và
SELECT *  FROM users  WHERE id IN [10, 15, 18] 
687 có thể được sử dụng để phủ nhận một nhóm ràng buộc truy vấn nhất định. Ví dụ: truy vấn sau loại trừ các sản phẩm đang được thanh lý hoặc có giá thấp hơn mười

public function index[]
{
    $data = DB::table['users']
                ->whereIn['id', [10, 15, 18]]
                ->get[];
  
    dd[$data];                    
}
28

Mệnh đề JSON ở đâu

Laravel cũng hỗ trợ truy vấn các loại cột JSON trên cơ sở dữ liệu cung cấp hỗ trợ cho các loại cột JSON. Hiện tại, điều này bao gồm MySQL 5. 7+, PostgreSQL, SQL Server 2016 và SQLite 3. 39. 0 [có phần mở rộng JSON1]. Để truy vấn một cột JSON, hãy sử dụng toán tử

SELECT *  FROM users  WHERE id IN [10, 15, 18] 
688

public function index[]
{
    $data = DB::table['users']
                ->whereIn['id', [10, 15, 18]]
                ->get[];
  
    dd[$data];                    
}
29

Bạn có thể sử dụng

SELECT *  FROM users  WHERE id IN [10, 15, 18] 
689 để truy vấn các mảng JSON. Tính năng này không được hỗ trợ bởi các phiên bản cơ sở dữ liệu SQLite nhỏ hơn 3. 38. 0

public function index[]
{
    $data = DB::table['users']
                ->whereIn['id', [10, 15, 18]]
                ->get[];
  
    dd[$data];                    
}
50

Nếu ứng dụng của bạn sử dụng cơ sở dữ liệu MySQL hoặc PostgreSQL, bạn có thể chuyển một mảng giá trị cho phương thức

SELECT *  FROM users  WHERE id IN [10, 15, 18] 
689

public function index[]
{
    $data = DB::table['users']
                ->whereIn['id', [10, 15, 18]]
                ->get[];
  
    dd[$data];                    
}
51

Bạn có thể sử dụng phương pháp

SELECT *  FROM users  WHERE id IN [10, 15, 18] 
691 để truy vấn các mảng JSON theo độ dài của chúng

public function index[]
{
    $data = DB::table['users']
                ->whereIn['id', [10, 15, 18]]
                ->get[];
  
    dd[$data];                    
}
52

Các mệnh đề bổ sung

ở đâuGiữa / hoặc ở đâuGiữa

Phương thức

SELECT *  FROM users  WHERE id IN [10, 15, 18] 
692 xác minh rằng giá trị của cột nằm giữa hai giá trị

public function index[]
{
    $data = DB::table['users']
                ->whereIn['id', [10, 15, 18]]
                ->get[];
  
    dd[$data];                    
}
53

whereNotBetween / hoặc WhereNotBetween

Phương thức

SELECT *  FROM users  WHERE id IN [10, 15, 18] 
693 xác minh rằng giá trị của cột nằm ngoài hai giá trị

public function index[]
{
    $data = DB::table['users']
                ->whereIn['id', [10, 15, 18]]
                ->get[];
  
    dd[$data];                    
}
54

whereBetweenColumns / where NotBetweenColumns / or WhereBetweenColumns / or Where NotBetweenColumns

Phương thức

SELECT *  FROM users  WHERE id IN [10, 15, 18] 
694 xác minh rằng giá trị của một cột nằm giữa hai giá trị của hai cột trong cùng một hàng của bảng

public function index[]
{
    $data = DB::table['users']
                ->whereIn['id', [10, 15, 18]]
                ->get[];
  
    dd[$data];                    
}
55

Phương thức

SELECT *  FROM users  WHERE id IN [10, 15, 18] 
695 xác minh rằng giá trị của một cột nằm ngoài hai giá trị của hai cột trong cùng một hàng của bảng

public function index[]
{
    $data = DB::table['users']
                ->whereIn['id', [10, 15, 18]]
                ->get[];
  
    dd[$data];                    
}
56

đâuIn/đâuKhôngVào/hoặcĐâuVào/hoặcĐâuKhôngVào

Phương thức

SELECT *  FROM users  WHERE id IN [10, 15, 18] 
696 xác minh rằng giá trị của một cột nhất định được chứa trong mảng đã cho

public function index[]
{
    $data = DB::table['users']
                ->whereIn['id', [10, 15, 18]]
                ->get[];
  
    dd[$data];                    
}
21

Phương thức

SELECT *  FROM users  WHERE id IN [10, 15, 18] 
697 xác minh rằng giá trị của cột đã cho không có trong mảng đã cho

public function index[]
{
    $data = DB::table['users']
                ->whereIn['id', [10, 15, 18]]
                ->get[];
  
    dd[$data];                    
}
58

Cảnh báo
Nếu bạn đang thêm một mảng lớn các liên kết số nguyên vào truy vấn của mình, các phương thức

SELECT *  FROM users  WHERE id IN [10, 15, 18] 
698 hoặc
SELECT *  FROM users  WHERE id IN [10, 15, 18] 
699 có thể được sử dụng để giảm đáng kể mức sử dụng bộ nhớ của bạn.

whereNull / whereNotNull / orWhereNull / orWhereNotNull

Phương thức

public function index[]
{
    $data = DB::table['users']
                ->whereIn['id', [10, 15, 18]]
                ->get[];
  
    dd[$data];                    
}
000 xác minh rằng giá trị của cột đã cho là
public function index[]
{
    $data = DB::table['users']
                ->whereIn['id', [10, 15, 18]]
                ->get[];
  
    dd[$data];                    
}
001

public function index[]
{
    $data = DB::table['users']
                ->whereIn['id', [10, 15, 18]]
                ->get[];
  
    dd[$data];                    
}
59

Phương pháp

public function index[]
{
    $data = DB::table['users']
                ->whereIn['id', [10, 15, 18]]
                ->get[];
  
    dd[$data];                    
}
002 xác minh rằng giá trị của cột không phải là
public function index[]
{
    $data = DB::table['users']
                ->whereIn['id', [10, 15, 18]]
                ->get[];
  
    dd[$data];                    
}
001

public function index[]
{
    $data = DB::table['users']
                ->whereIn['id', [10, 15, 18]]
                ->get[];
  
    dd[$data];                    
}
80

whereDate/whereMonth/whereDay/whereYear/whereTime

Phương pháp

public function index[]
{
    $data = DB::table['users']
                ->whereIn['id', [10, 15, 18]]
                ->get[];
  
    dd[$data];                    
}
004 có thể được sử dụng để so sánh giá trị của một cột với một ngày

public function index[]
{
    $data = DB::table['users']
                ->whereIn['id', [10, 15, 18]]
                ->get[];
  
    dd[$data];                    
}
81

Phương pháp

public function index[]
{
    $data = DB::table['users']
                ->whereIn['id', [10, 15, 18]]
                ->get[];
  
    dd[$data];                    
}
005 có thể được sử dụng để so sánh giá trị của một cột với một tháng cụ thể

public function index[]
{
    $data = DB::table['users']
                ->whereIn['id', [10, 15, 18]]
                ->get[];
  
    dd[$data];                    
}
82

Phương pháp

public function index[]
{
    $data = DB::table['users']
                ->whereIn['id', [10, 15, 18]]
                ->get[];
  
    dd[$data];                    
}
006 có thể được sử dụng để so sánh giá trị của một cột với một ngày cụ thể trong tháng

public function index[]
{
    $data = DB::table['users']
                ->whereIn['id', [10, 15, 18]]
                ->get[];
  
    dd[$data];                    
}
83

Phương pháp

public function index[]
{
    $data = DB::table['users']
                ->whereIn['id', [10, 15, 18]]
                ->get[];
  
    dd[$data];                    
}
007 có thể được sử dụng để so sánh giá trị của một cột với một năm cụ thể

public function index[]
{
    $data = DB::table['users']
                ->whereIn['id', [10, 15, 18]]
                ->get[];
  
    dd[$data];                    
}
84

Phương pháp

public function index[]
{
    $data = DB::table['users']
                ->whereIn['id', [10, 15, 18]]
                ->get[];
  
    dd[$data];                    
}
008 có thể được sử dụng để so sánh giá trị của một cột với một thời điểm cụ thể

public function index[]
{
    $data = DB::table['users']
                ->whereIn['id', [10, 15, 18]]
                ->get[];
  
    dd[$data];                    
}
85

WhereColumn / hoặc WhereColumn

Phương pháp

public function index[]
{
    $data = DB::table['users']
                ->whereIn['id', [10, 15, 18]]
                ->get[];
  
    dd[$data];                    
}
009 có thể được sử dụng để xác minh rằng hai cột bằng nhau

public function index[]
{
    $data = DB::table['users']
                ->whereIn['id', [10, 15, 18]]
                ->get[];
  
    dd[$data];                    
}
86

Bạn cũng có thể chuyển một toán tử so sánh cho phương thức

public function index[]
{
    $data = DB::table['users']
                ->whereIn['id', [10, 15, 18]]
                ->get[];
  
    dd[$data];                    
}
009

public function index[]
{
    $data = DB::table['users']
                ->whereIn['id', [10, 15, 18]]
                ->get[];
  
    dd[$data];                    
}
87

Bạn cũng có thể chuyển một mảng so sánh cột sang phương thức

public function index[]
{
    $data = DB::table['users']
                ->whereIn['id', [10, 15, 18]]
                ->get[];
  
    dd[$data];                    
}
009. Các điều kiện này sẽ được nối bằng cách sử dụng toán tử
SELECT *  FROM users  WHERE id IN [10, 15, 18] 
679

public function index[]
{
    $data = DB::table['users']
                ->whereIn['id', [10, 15, 18]]
                ->get[];
  
    dd[$data];                    
}
88

Nhóm hợp lý

Đôi khi, bạn có thể cần phải nhóm một số mệnh đề "ở đâu" trong dấu ngoặc đơn để đạt được nhóm logic mong muốn của truy vấn của bạn. Trên thực tế, bạn thường phải luôn nhóm các cuộc gọi đến phương thức

SELECT *  FROM users  WHERE id IN [10, 15, 18] 
655 trong ngoặc đơn để tránh hành vi truy vấn không mong muốn. Để thực hiện điều này, bạn có thể chuyển một bao đóng cho phương thức
SELECT *  FROM users  WHERE id IN [10, 15, 18] 
654

public function index[]
{
    $data = DB::table['users']
                ->whereIn['id', [10, 15, 18]]
                ->get[];
  
    dd[$data];                    
}
89

Như bạn có thể thấy, việc chuyển một bao đóng vào phương thức

SELECT *  FROM users  WHERE id IN [10, 15, 18] 
654 sẽ hướng dẫn trình tạo truy vấn bắt đầu một nhóm ràng buộc. Việc đóng sẽ nhận được một phiên bản trình tạo truy vấn mà bạn có thể sử dụng để đặt các ràng buộc nên có trong nhóm dấu ngoặc đơn. Ví dụ trên sẽ tạo ra SQL sau

public function index[]
{
    $data= User::whereIn['id', [10, 15, 18]]->get[];
  
    dd[$data];                    
}
00

Cảnh báo
Bạn phải luôn nhóm các cuộc gọi

SELECT *  FROM users  WHERE id IN [10, 15, 18] 
655 để tránh hành vi không mong muốn khi áp dụng phạm vi toàn cầu.

Mệnh đề nâng cao

Các mệnh đề tồn tại ở đâu

Phương thức

public function index[]
{
    $data = DB::table['users']
                ->whereIn['id', [10, 15, 18]]
                ->get[];
  
    dd[$data];                    
}
017 cho phép bạn viết các mệnh đề SQL "ở đâu tồn tại". Phương thức
public function index[]
{
    $data = DB::table['users']
                ->whereIn['id', [10, 15, 18]]
                ->get[];
  
    dd[$data];                    
}
017 chấp nhận một bao đóng sẽ nhận một phiên bản trình tạo truy vấn, cho phép bạn xác định truy vấn sẽ được đặt bên trong mệnh đề "tồn tại"

public function index[]
{
    $data= User::whereIn['id', [10, 15, 18]]->get[];
  
    dd[$data];                    
}
01

Truy vấn trên sẽ tạo ra SQL sau

public function index[]
{
    $data= User::whereIn['id', [10, 15, 18]]->get[];
  
    dd[$data];                    
}
02

Truy vấn con mệnh đề Where

Đôi khi, bạn có thể cần xây dựng mệnh đề "where" để so sánh kết quả của một truy vấn phụ với một giá trị đã cho. Bạn có thể thực hiện điều này bằng cách chuyển một bao đóng và một giá trị cho phương thức

SELECT *  FROM users  WHERE id IN [10, 15, 18] 
654. Ví dụ: truy vấn sau sẽ truy xuất tất cả người dùng có "tư cách thành viên" gần đây của một loại nhất định;

public function index[]
{
    $data= User::whereIn['id', [10, 15, 18]]->get[];
  
    dd[$data];                    
}
03

Hoặc, bạn có thể cần xây dựng mệnh đề "where" để so sánh một cột với kết quả của truy vấn con. Bạn có thể thực hiện việc này bằng cách chuyển một cột, toán tử và bao đóng cho phương thức

SELECT *  FROM users  WHERE id IN [10, 15, 18] 
654. Ví dụ: truy vấn sau đây sẽ truy xuất tất cả các bản ghi thu nhập có số tiền nhỏ hơn mức trung bình;

public function index[]
{
    $data= User::whereIn['id', [10, 15, 18]]->get[];
  
    dd[$data];                    
}
04

Toàn văn Where Mệnh đề

Cảnh báo
Toàn văn nơi các mệnh đề hiện được hỗ trợ bởi MySQL và PostgreSQL.

Các phương pháp

public function index[]
{
    $data = DB::table['users']
                ->whereIn['id', [10, 15, 18]]
                ->get[];
  
    dd[$data];                    
}
021 và
public function index[]
{
    $data = DB::table['users']
                ->whereIn['id', [10, 15, 18]]
                ->get[];
  
    dd[$data];                    
}
022 có thể được sử dụng để thêm mệnh đề "where" toàn văn vào truy vấn cho các cột có chỉ mục toàn văn. Các phương thức này sẽ được Laravel chuyển đổi thành SQL thích hợp cho hệ thống cơ sở dữ liệu bên dưới. Ví dụ: một mệnh đề
public function index[]
{
    $data = DB::table['users']
                ->whereIn['id', [10, 15, 18]]
                ->get[];
  
    dd[$data];                    
}
023 sẽ được tạo cho các ứng dụng sử dụng MySQL

public function index[]
{
    $data= User::whereIn['id', [10, 15, 18]]->get[];
  
    dd[$data];                    
}
05

Đặt hàng, Nhóm, Giới hạn & Offset

đặt hàng

Phương pháp
public function index[]
{
    $data = DB::table['users']
                ->whereIn['id', [10, 15, 18]]
                ->get[];
  
    dd[$data];                    
}
024

Phương pháp

public function index[]
{
    $data = DB::table['users']
                ->whereIn['id', [10, 15, 18]]
                ->get[];
  
    dd[$data];                    
}
024 cho phép bạn sắp xếp kết quả của truy vấn theo một cột nhất định. Đối số đầu tiên được phương thức
public function index[]
{
    $data = DB::table['users']
                ->whereIn['id', [10, 15, 18]]
                ->get[];
  
    dd[$data];                    
}
024 chấp nhận phải là cột bạn muốn sắp xếp theo đó, trong khi đối số thứ hai xác định hướng sắp xếp và có thể là
public function index[]
{
    $data = DB::table['users']
                ->whereIn['id', [10, 15, 18]]
                ->get[];
  
    dd[$data];                    
}
027 hoặc
public function index[]
{
    $data = DB::table['users']
                ->whereIn['id', [10, 15, 18]]
                ->get[];
  
    dd[$data];                    
}
028

public function index[]
{
    $data = DB::table['users']
                ->whereIn['id', [10, 15, 18]]
                ->get[];
  
    dd[$data];                    
}
21

Để sắp xếp theo nhiều cột, bạn chỉ cần gọi

public function index[]
{
    $data = DB::table['users']
                ->whereIn['id', [10, 15, 18]]
                ->get[];
  
    dd[$data];                    
}
024 nhiều lần nếu cần

public function index[]
{
    $data = DB::table['users']
                ->whereIn['id', [10, 15, 18]]
                ->get[];
  
    dd[$data];                    
}
21

Phương pháp ________ 2030 n ________ 2031

Phương pháp

public function index[]
{
    $data = DB::table['users']
                ->whereIn['id', [10, 15, 18]]
                ->get[];
  
    dd[$data];                    
}
030 và
public function index[]
{
    $data = DB::table['users']
                ->whereIn['id', [10, 15, 18]]
                ->get[];
  
    dd[$data];                    
}
031 cho phép bạn dễ dàng sắp xếp kết quả theo ngày. Theo mặc định, kết quả sẽ được sắp xếp theo cột
SELECT *  FROM users  WHERE id IN [10, 15, 18] 
660 của bảng. Hoặc, bạn có thể chuyển tên cột mà bạn muốn sắp xếp theo

Thứ tự ngẫu nhiên

Phương pháp

public function index[]
{
    $data = DB::table['users']
                ->whereIn['id', [10, 15, 18]]
                ->get[];
  
    dd[$data];                    
}
035 có thể được sử dụng để sắp xếp kết quả truy vấn một cách ngẫu nhiên. Ví dụ: bạn có thể sử dụng phương pháp này để tìm nạp một người dùng ngẫu nhiên

public function index[]
{
    $data= User::whereIn['id', [10, 15, 18]]->get[];
  
    dd[$data];                    
}
08

Xóa đơn đặt hàng hiện có

Phương thức

public function index[]
{
    $data = DB::table['users']
                ->whereIn['id', [10, 15, 18]]
                ->get[];
  
    dd[$data];                    
}
036 loại bỏ tất cả các mệnh đề "order by" đã được áp dụng trước đó cho truy vấn

public function index[]
{
    $data= User::whereIn['id', [10, 15, 18]]->get[];
  
    dd[$data];                    
}
09

Bạn có thể chuyển một cột và hướng khi gọi phương thức

public function index[]
{
    $data = DB::table['users']
                ->whereIn['id', [10, 15, 18]]
                ->get[];
  
    dd[$data];                    
}
036 để loại bỏ tất cả các mệnh đề "order by" hiện có và áp dụng một thứ tự hoàn toàn mới cho truy vấn

public function index[]
{
    $data= User::whereIn['id', [10, 15, 18]]->get[];
  
    dd[$data];                    
}
40

nhóm

Phương pháp
public function index[]
{
    $data = DB::table['users']
                ->whereIn['id', [10, 15, 18]]
                ->get[];
  
    dd[$data];                    
}
038 &
public function index[]
{
    $data = DB::table['users']
                ->whereIn['id', [10, 15, 18]]
                ->get[];
  
    dd[$data];                    
}
039

Như bạn có thể mong đợi, các phương pháp

public function index[]
{
    $data = DB::table['users']
                ->whereIn['id', [10, 15, 18]]
                ->get[];
  
    dd[$data];                    
}
038 và
public function index[]
{
    $data = DB::table['users']
                ->whereIn['id', [10, 15, 18]]
                ->get[];
  
    dd[$data];                    
}
039 có thể được sử dụng để nhóm các kết quả truy vấn. Chữ ký của phương thức
public function index[]
{
    $data = DB::table['users']
                ->whereIn['id', [10, 15, 18]]
                ->get[];
  
    dd[$data];                    
}
039 tương tự như chữ ký của phương thức
SELECT *  FROM users  WHERE id IN [10, 15, 18] 
654

public function index[]
{
    $data= User::whereIn['id', [10, 15, 18]]->get[];
  
    dd[$data];                    
}
41

Bạn có thể sử dụng phương pháp

public function index[]
{
    $data = DB::table['users']
                ->whereIn['id', [10, 15, 18]]
                ->get[];
  
    dd[$data];                    
}
044 để lọc kết quả trong một phạm vi nhất định

public function index[]
{
    $data= User::whereIn['id', [10, 15, 18]]->get[];
  
    dd[$data];                    
}
42

Bạn có thể chuyển nhiều đối số cho phương thức

public function index[]
{
    $data = DB::table['users']
                ->whereIn['id', [10, 15, 18]]
                ->get[];
  
    dd[$data];                    
}
038 để nhóm theo nhiều cột

public function index[]
{
    $data= User::whereIn['id', [10, 15, 18]]->get[];
  
    dd[$data];                    
}
43

Để xây dựng các câu lệnh

public function index[]
{
    $data = DB::table['users']
                ->whereIn['id', [10, 15, 18]]
                ->get[];
  
    dd[$data];                    
}
039 nâng cao hơn, hãy xem phương pháp
SELECT *  FROM users  WHERE id IN [10, 15, 18] 
639

Giới hạn & Bù trừ

Phương pháp
public function index[]
{
    $data = DB::table['users']
                ->whereIn['id', [10, 15, 18]]
                ->get[];
  
    dd[$data];                    
}
048 &
public function index[]
{
    $data = DB::table['users']
                ->whereIn['id', [10, 15, 18]]
                ->get[];
  
    dd[$data];                    
}
049

Bạn có thể sử dụng các phương pháp

public function index[]
{
    $data = DB::table['users']
                ->whereIn['id', [10, 15, 18]]
                ->get[];
  
    dd[$data];                    
}
048 và
public function index[]
{
    $data = DB::table['users']
                ->whereIn['id', [10, 15, 18]]
                ->get[];
  
    dd[$data];                    
}
049 để giới hạn số lượng kết quả trả về từ truy vấn hoặc bỏ qua một số kết quả nhất định trong truy vấn

public function index[]
{
    $data= User::whereIn['id', [10, 15, 18]]->get[];
  
    dd[$data];                    
}
44

Ngoài ra, bạn có thể sử dụng các phương pháp

public function index[]
{
    $data = DB::table['users']
                ->whereIn['id', [10, 15, 18]]
                ->get[];
  
    dd[$data];                    
}
052 và
public function index[]
{
    $data = DB::table['users']
                ->whereIn['id', [10, 15, 18]]
                ->get[];
  
    dd[$data];                    
}
053. Các phương thức này có chức năng tương đương với các phương thức
public function index[]
{
    $data = DB::table['users']
                ->whereIn['id', [10, 15, 18]]
                ->get[];
  
    dd[$data];                    
}
049 và
public function index[]
{
    $data = DB::table['users']
                ->whereIn['id', [10, 15, 18]]
                ->get[];
  
    dd[$data];                    
}
048, tương ứng

public function index[]
{
    $data = DB::table['users']
                ->whereIn['id', [10, 15, 18]]
                ->get[];
  
    dd[$data];                    
}
21

mệnh đề điều kiện

Đôi khi bạn có thể muốn một số mệnh đề truy vấn áp dụng cho một truy vấn dựa trên một điều kiện khác. Chẳng hạn, bạn có thể chỉ muốn áp dụng câu lệnh

SELECT *  FROM users  WHERE id IN [10, 15, 18] 
654 nếu có một giá trị đầu vào nhất định trong yêu cầu HTTP đến. Bạn có thể thực hiện việc này bằng cách sử dụng phương pháp
public function index[]
{
    $data = DB::table['users']
                ->whereIn['id', [10, 15, 18]]
                ->get[];
  
    dd[$data];                    
}
057

public function index[]
{
    $data= User::whereIn['id', [10, 15, 18]]->get[];
  
    dd[$data];                    
}
46

Phương thức

public function index[]
{
    $data = DB::table['users']
                ->whereIn['id', [10, 15, 18]]
                ->get[];
  
    dd[$data];                    
}
057 chỉ thực thi bao đóng đã cho khi đối số đầu tiên là
public function index[]
{
    $data = DB::table['users']
                ->whereIn['id', [10, 15, 18]]
                ->get[];
  
    dd[$data];                    
}
059. Nếu đối số đầu tiên là
SELECT *  FROM users  WHERE id IN [10, 15, 18] 
610, lệnh đóng sẽ không được thực thi. Vì vậy, trong ví dụ trên, bao đóng được cung cấp cho phương thức
public function index[]
{
    $data = DB::table['users']
                ->whereIn['id', [10, 15, 18]]
                ->get[];
  
    dd[$data];                    
}
057 sẽ chỉ được gọi nếu trường
public function index[]
{
    $data = DB::table['users']
                ->whereIn['id', [10, 15, 18]]
                ->get[];
  
    dd[$data];                    
}
062 xuất hiện trong yêu cầu đến và ước tính thành
public function index[]
{
    $data = DB::table['users']
                ->whereIn['id', [10, 15, 18]]
                ->get[];
  
    dd[$data];                    
}
059

Bạn có thể chuyển một bao đóng khác làm đối số thứ ba cho phương thức

public function index[]
{
    $data = DB::table['users']
                ->whereIn['id', [10, 15, 18]]
                ->get[];
  
    dd[$data];                    
}
057. Việc đóng này sẽ chỉ thực hiện nếu đối số đầu tiên đánh giá là
SELECT *  FROM users  WHERE id IN [10, 15, 18] 
610. Để minh họa cách sử dụng tính năng này, chúng tôi sẽ sử dụng tính năng này để định cấu hình thứ tự mặc định của truy vấn

public function index[]
{
    $data= User::whereIn['id', [10, 15, 18]]->get[];
  
    dd[$data];                    
}
47

Chèn báo cáo

Trình tạo truy vấn cũng cung cấp phương thức

public function index[]
{
    $data = DB::table['users']
                ->whereIn['id', [10, 15, 18]]
                ->get[];
  
    dd[$data];                    
}
066 có thể được sử dụng để chèn bản ghi vào bảng cơ sở dữ liệu. Phương thức
public function index[]
{
    $data = DB::table['users']
                ->whereIn['id', [10, 15, 18]]
                ->get[];
  
    dd[$data];                    
}
066 chấp nhận một mảng tên và giá trị cột

public function index[]
{
    $data= User::whereIn['id', [10, 15, 18]]->get[];
  
    dd[$data];                    
}
48

Bạn có thể chèn nhiều bản ghi cùng một lúc bằng cách chuyển một mảng các mảng. Mỗi mảng đại diện cho một bản ghi sẽ được chèn vào bảng

public function index[]
{
    $data= User::whereIn['id', [10, 15, 18]]->get[];
  
    dd[$data];                    
}
48

Phương thức

public function index[]
{
    $data = DB::table['users']
                ->whereIn['id', [10, 15, 18]]
                ->get[];
  
    dd[$data];                    
}
068 sẽ bỏ qua lỗi khi chèn bản ghi vào cơ sở dữ liệu. Khi sử dụng phương pháp này, bạn nên lưu ý rằng các lỗi bản ghi trùng lặp sẽ bị bỏ qua và các loại lỗi khác cũng có thể bị bỏ qua tùy thuộc vào công cụ cơ sở dữ liệu. Ví dụ:
public function index[]
{
    $data = DB::table['users']
                ->whereIn['id', [10, 15, 18]]
                ->get[];
  
    dd[$data];                    
}
068 sẽ bỏ qua chế độ nghiêm ngặt của MySQL

public function index[]
{
    $data= User::whereIn['id', [10, 15, 18]]->get[];
  
    dd[$data];                    
}
60

Phương pháp

public function index[]
{
    $data = DB::table['users']
                ->whereIn['id', [10, 15, 18]]
                ->get[];
  
    dd[$data];                    
}
070 sẽ chèn các bản ghi mới vào bảng trong khi sử dụng truy vấn con để xác định dữ liệu sẽ được chèn

public function index[]
{
    $data= User::whereIn['id', [10, 15, 18]]->get[];
  
    dd[$data];                    
}
61

ID tăng tự động

Nếu bảng có id tăng tự động, hãy sử dụng phương thức

public function index[]
{
    $data = DB::table['users']
                ->whereIn['id', [10, 15, 18]]
                ->get[];
  
    dd[$data];                    
}
071 để chèn bản ghi rồi truy xuất ID

public function index[]
{
    $data= User::whereIn['id', [10, 15, 18]]->get[];
  
    dd[$data];                    
}
62

Cảnh báo
Khi sử dụng PostgreSQL, phương pháp

public function index[]
{
    $data = DB::table['users']
                ->whereIn['id', [10, 15, 18]]
                ->get[];
  
    dd[$data];                    
}
071 yêu cầu cột tăng tự động có tên là
SELECT *  FROM users  WHERE id IN [10, 15, 18] 
602. Nếu bạn muốn truy xuất ID từ một "dãy" khác, bạn có thể chuyển tên cột làm tham số thứ hai cho phương thức
public function index[]
{
    $data = DB::table['users']
                ->whereIn['id', [10, 15, 18]]
                ->get[];
  
    dd[$data];                    
}
071.

Upserts

Phương thức

public function index[]
{
    $data = DB::table['users']
                ->whereIn['id', [10, 15, 18]]
                ->get[];
  
    dd[$data];                    
}
075 sẽ chèn các bản ghi không tồn tại và cập nhật các bản ghi đã tồn tại với các giá trị mới mà bạn có thể chỉ định. Đối số đầu tiên của phương thức bao gồm các giá trị để chèn hoặc cập nhật, trong khi đối số thứ hai liệt kê [các] cột xác định duy nhất các bản ghi trong bảng được liên kết. Đối số thứ ba và cũng là đối số cuối cùng của phương thức là một mảng các cột sẽ được cập nhật nếu một bản ghi phù hợp đã tồn tại trong cơ sở dữ liệu

public function index[]
{
    $data= User::whereIn['id', [10, 15, 18]]->get[];
  
    dd[$data];                    
}
63

Trong ví dụ trên, Laravel sẽ cố gắng chèn hai bản ghi. Nếu một bản ghi đã tồn tại với cùng giá trị cột

public function index[]
{
    $data = DB::table['users']
                ->whereIn['id', [10, 15, 18]]
                ->get[];
  
    dd[$data];                    
}
076 và
public function index[]
{
    $data = DB::table['users']
                ->whereIn['id', [10, 15, 18]]
                ->get[];
  
    dd[$data];                    
}
077, Laravel sẽ cập nhật cột
public function index[]
{
    $data = DB::table['users']
                ->whereIn['id', [10, 15, 18]]
                ->get[];
  
    dd[$data];                    
}
078 của bản ghi đó

Cảnh báo
Tất cả các cơ sở dữ liệu ngoại trừ SQL Server đều yêu cầu các cột trong đối số thứ hai của phương thức

public function index[]
{
    $data = DB::table['users']
                ->whereIn['id', [10, 15, 18]]
                ->get[];
  
    dd[$data];                    
}
075 phải có chỉ mục "chính" hoặc "duy nhất". Ngoài ra, trình điều khiển cơ sở dữ liệu MySQL bỏ qua đối số thứ hai của phương thức
public function index[]
{
    $data = DB::table['users']
                ->whereIn['id', [10, 15, 18]]
                ->get[];
  
    dd[$data];                    
}
075 và luôn sử dụng các chỉ mục "chính" và "duy nhất" của bảng để phát hiện các bản ghi hiện có.

Cập nhật báo cáo

Ngoài việc chèn các bản ghi vào cơ sở dữ liệu, trình tạo truy vấn cũng có thể cập nhật các bản ghi hiện có bằng phương thức

public function index[]
{
    $data = DB::table['users']
                ->whereIn['id', [10, 15, 18]]
                ->get[];
  
    dd[$data];                    
}
081. Phương thức
public function index[]
{
    $data = DB::table['users']
                ->whereIn['id', [10, 15, 18]]
                ->get[];
  
    dd[$data];                    
}
081, giống như phương thức
public function index[]
{
    $data = DB::table['users']
                ->whereIn['id', [10, 15, 18]]
                ->get[];
  
    dd[$data];                    
}
066, chấp nhận một mảng các cặp cột và giá trị cho biết các cột sẽ được cập nhật. Phương thức
public function index[]
{
    $data = DB::table['users']
                ->whereIn['id', [10, 15, 18]]
                ->get[];
  
    dd[$data];                    
}
081 trả về số hàng bị ảnh hưởng. Bạn có thể hạn chế truy vấn
public function index[]
{
    $data = DB::table['users']
                ->whereIn['id', [10, 15, 18]]
                ->get[];
  
    dd[$data];                    
}
081 bằng mệnh đề
SELECT *  FROM users  WHERE id IN [10, 15, 18] 
654

public function index[]
{
    $data= User::whereIn['id', [10, 15, 18]]->get[];
  
    dd[$data];                    
}
64

Cập nhật hoặc Chèn

Đôi khi bạn có thể muốn cập nhật một bản ghi hiện có trong cơ sở dữ liệu hoặc tạo nó nếu không có bản ghi phù hợp nào tồn tại. Trong trường hợp này, phương pháp

public function index[]
{
    $data = DB::table['users']
                ->whereIn['id', [10, 15, 18]]
                ->get[];
  
    dd[$data];                    
}
087 có thể được sử dụng. Phương thức
public function index[]
{
    $data = DB::table['users']
                ->whereIn['id', [10, 15, 18]]
                ->get[];
  
    dd[$data];                    
}
087 chấp nhận hai đối số. một mảng các điều kiện để tìm bản ghi và một mảng các cặp cột và giá trị cho biết các cột sẽ được cập nhật

Phương thức

public function index[]
{
    $data = DB::table['users']
                ->whereIn['id', [10, 15, 18]]
                ->get[];
  
    dd[$data];                    
}
087 sẽ cố gắng định vị một bản ghi cơ sở dữ liệu phù hợp bằng cách sử dụng các cặp giá trị và cột của đối số đầu tiên. Nếu bản ghi tồn tại, nó sẽ được cập nhật với các giá trị trong đối số thứ hai. Nếu không tìm thấy bản ghi, một bản ghi mới sẽ được chèn với các thuộc tính đã hợp nhất của cả hai đối số

Cập nhật cột JSON

Khi cập nhật cột JSON, bạn nên sử dụng cú pháp

SELECT *  FROM users  WHERE id IN [10, 15, 18] 
688 để cập nhật khóa thích hợp trong đối tượng JSON. Thao tác này được hỗ trợ trên MySQL 5. 7+ và PostgreSQL 9. 5+

public function index[]
{
    $data= User::whereIn['id', [10, 15, 18]]->get[];
  
    dd[$data];                    
}
65

Tăng giảm

Trình tạo truy vấn cũng cung cấp các phương thức thuận tiện để tăng hoặc giảm giá trị của một cột nhất định. Cả hai phương thức này đều chấp nhận ít nhất một đối số. cột để sửa đổi. Một đối số thứ hai có thể được cung cấp để xác định số tiền mà theo đó cột sẽ được tăng hoặc giảm

public function index[]
{
    $data= User::whereIn['id', [10, 15, 18]]->get[];
  
    dd[$data];                    
}
66

Bạn cũng có thể chỉ định các cột bổ sung để cập nhật trong quá trình hoạt động

public function index[]
{
    $data= User::whereIn['id', [10, 15, 18]]->get[];
  
    dd[$data];                    
}
67

Xóa câu lệnh

Phương thức

public function index[]
{
    $data = DB::table['users']
                ->whereIn['id', [10, 15, 18]]
                ->get[];
  
    dd[$data];                    
}
091 của trình tạo truy vấn có thể được sử dụng để xóa các bản ghi khỏi bảng. Phương thức
public function index[]
{
    $data = DB::table['users']
                ->whereIn['id', [10, 15, 18]]
                ->get[];
  
    dd[$data];                    
}
091 trả về số hàng bị ảnh hưởng. Bạn có thể hạn chế câu lệnh
public function index[]
{
    $data = DB::table['users']
                ->whereIn['id', [10, 15, 18]]
                ->get[];
  
    dd[$data];                    
}
091 bằng cách thêm mệnh đề "where" trước khi gọi phương thức
public function index[]
{
    $data = DB::table['users']
                ->whereIn['id', [10, 15, 18]]
                ->get[];
  
    dd[$data];                    
}
091

public function index[]
{
    $data= User::whereIn['id', [10, 15, 18]]->get[];
  
    dd[$data];                    
}
68

Nếu bạn muốn cắt bớt toàn bộ bảng, thao tác này sẽ xóa tất cả các bản ghi khỏi bảng và đặt lại ID tăng tự động về 0, bạn có thể sử dụng phương pháp

public function index[]
{
    $data = DB::table['users']
                ->whereIn['id', [10, 15, 18]]
                ->get[];
  
    dd[$data];                    
}
095

public function index[]
{
    $data= User::whereIn['id', [10, 15, 18]]->get[];
  
    dd[$data];                    
}
69

Cắt bảng & PostgreSQL

Khi cắt bớt cơ sở dữ liệu PostgreSQL, hành vi

public function index[]
{
    $data = DB::table['users']
                ->whereIn['id', [10, 15, 18]]
                ->get[];
  
    dd[$data];                    
}
096 sẽ được áp dụng. Điều này có nghĩa là tất cả các bản ghi liên quan đến khóa ngoại trong các bảng khác cũng sẽ bị xóa

khóa bi quan

Trình tạo truy vấn cũng bao gồm một vài hàm để giúp bạn đạt được "khóa bi quan" khi thực hiện các câu lệnh

SELECT *  FROM users  WHERE id IN [10, 15, 18] 
626 của mình. Để thực thi câu lệnh với "khóa chia sẻ", bạn có thể gọi phương thức
public function index[]
{
    $data = DB::table['users']
                ->whereIn['id', [10, 15, 18]]
                ->get[];
  
    dd[$data];                    
}
098. Khóa dùng chung ngăn các hàng đã chọn bị sửa đổi cho đến khi giao dịch của bạn được thực hiện

Ngoài ra, bạn có thể sử dụng phương pháp

public function index[]
{
    $data = DB::table['users']
                ->whereIn['id', [10, 15, 18]]
                ->get[];
  
    dd[$data];                    
}
099. Khóa "để cập nhật" ngăn các bản ghi đã chọn bị sửa đổi hoặc được chọn bằng một khóa dùng chung khác

gỡ lỗi

Bạn có thể sử dụng các phương thức

public function index[]
{
    $data = DB::table['users']
                ->whereIn['id', [10, 15, 18]]
                ->get[];
  
    dd[$data];                    
}
200 và
public function index[]
{
    $data = DB::table['users']
                ->whereIn['id', [10, 15, 18]]
                ->get[];
  
    dd[$data];                    
}
201 trong khi tạo truy vấn để kết xuất các ràng buộc truy vấn hiện tại và SQL. Phương thức
public function index[]
{
    $data = DB::table['users']
                ->whereIn['id', [10, 15, 18]]
                ->get[];
  
    dd[$data];                    
}
200 sẽ hiển thị thông tin gỡ lỗi và sau đó dừng thực hiện yêu cầu. Phương thức
public function index[]
{
    $data = DB::table['users']
                ->whereIn['id', [10, 15, 18]]
                ->get[];
  
    dd[$data];                    
}
201 sẽ hiển thị thông tin gỡ lỗi nhưng cho phép yêu cầu tiếp tục thực hiện

Sự khác biệt giữa where và whereIn trong Laravel là gì?

Ghi chú. where sẽ so sánh với chỉ giá trị đầu tiên của mảng hoặc chỉ một giá trị duy nhất. và whereIn sẽ so sánh mọi chỉ số của mảng .

Làm cách nào để sử dụng Find_in_set trong Laravel?

Phương thức FIND_IN_SET là phương thức xác định trước của MySQL. Trong Laravel, Bạn sẽ sử dụng phương thức whereRaw[] để viết các truy vấn SQL thô của riêng bạn. Vì vậy, bạn có thể sử dụng phương thức "find_in_set" với whereRaw[] trong Laravel . Tuy nhiên, bạn cần tìm ra kết quả từ các giá trị được phân tách bằng dấu phẩy, sau đó bạn có thể lấy ý tưởng từ các truy vấn trên.

Làm cách nào để lấy dữ liệu từ cơ sở dữ liệu trong Laravel?

Sau khi định cấu hình cơ sở dữ liệu, chúng tôi có thể truy xuất các bản ghi bằng cách sử dụng mặt tiền DB với phương thức chọn . Cú pháp của phương thức select như trong bảng sau. Chạy một câu lệnh chọn đối với cơ sở dữ liệu.

Làm cách nào để lấy giá trị cột đơn trong Laravel?

Chọn các cột cụ thể với Laravel Eloquent . $user = Người dùng. where['tên người dùng', 'bobbyiliev']->get[]; . pass it as an argument to the get[] method.

Chủ Đề