Làm cách nào để sử dụng nhiều điều kiện AND trong SQL?

Một câu lệnh select trong SQL có thể chứa một hoặc nhiều điều kiện [còn được gọi là vị từ] trong mệnh đề where. Một điều kiện đánh giá đúng hoặc sai hoặc không xác định. Mệnh đề where phải trả về giá trị thực cho một hàng cụ thể được chọn

Mệnh đề SQL tìm nạp bản ghi nhanh chóng khi bạn đưa ra điều kiện chính xác. Các điều kiện phải được lập chỉ mục cột bảng. Và, nhiều lúc, bạn cần lọc các bản ghi bằng các điều kiện tương tự

Đôi khi bạn cần nhiều điều kiện khớp hoặc không khớp. Bài đăng này trình bày cách sử dụng mệnh đề Multiple Like in Where của SQL

Không chỉ THÍCH mà bạn còn có thể sử dụng nhiều điều kiện KHÔNG THÍCH trong SQL. Bạn sẽ nhận được bản ghi các ký tự khớp/không khớp với THÍCH – điều này bạn có thể đạt được bằng ký tự đại diện phân vị [%]

Các trường hợp sử dụng bên dưới, giúp bạn biết cách sử dụng điều kiện like đơn và like nhiều

  1. Cách sử dụng điều kiện Single LIKE
  2. Cách sử dụng nhiều Điều kiện THÍCH
  3. Ví dụ thực tế với nhiều điều kiện THÍCH
  4. Cách sử dụng nhiều điều kiện NOT LIKE

quảng cáo

Cách sử dụng điều kiện Single Like

Dưới đây là SQL đơn giản để đưa ra điều kiện Like trong mệnh đề Where. Đó là với Like đơn

select column1, column2, column3
where
column1 like '05%'
from my_table;

Cách đưa ra nhiều điều kiện thích

Ví dụ dưới đây cho biết, cú pháp chung của việc sử dụng nhiều điều kiện giống nhau trong mệnh đề Where

select column1, column2, column3
where
[column1 like '05%' 
or column1 like '06%' 
or column1 like '07%']
from my_table;

Ví dụ thực tế với nhiều điều kiện Thích

Ví dụ dưới đây là lấy các bản ghi từ bảng TRAVEL-DET [bảng chi tiết hành trình]

select country_cde, date, name, age
where
[country_cde like 'BR%' 
or country_cde like 'US%' 
or country_cde like 'CA%']
from travel_det;

Trong ví dụ trên, tôi đã lọc các bản ghi khớp với Brazil [BRA], Hợp chủng quốc Hoa Kỳ [USA] và Canada [CAN]

Cách sử dụng nhiều điều kiện NOT LIKE

select country_cde, date, name, age
where
[country_cde not like 'BR%'
or country_cde not like 'US%'
or country_cde not like 'CA%']
from travel_det;

Trong ví dụ trên, bạn sẽ nhận được các bản ghi không khớp với Brazil [BRA], Hợp chủng quốc Hoa Kỳ [USA] và Canada [CAN]

Ok, tôi nghĩ rằng tôi có thể nhìn thấy một cái gì đó rõ ràng/đơn giản ở đây. nhưng tôi cần viết một truy vấn chỉ trả về các bản ghi khớp với nhiều tiêu chí trên cùng một cột

Bảng của tôi là một thiết lập liên kết rất đơn giản để áp dụng cờ cho người dùng

ID   contactid  flag        flag_type 
-----------------------------------
118  99         Volunteer   1 
119  99         Uploaded    2 
120  100        Via Import  3 
121  100        Volunteer   1  
122  100        Uploaded    2

vân vân. trong trường hợp này, bạn sẽ thấy cả liên hệ 99 và 100 đều được gắn cờ là "Tình nguyện viên" và "Đã tải lên"

Điều tôi cần để có thể làm là trả về CHỈ những người liên hệ đó khớp với nhiều tiêu chí được nhập qua biểu mẫu tìm kiếm. contactid phải khớp với TẤT CẢ các cờ đã chọn. trong đầu tôi, SQL sẽ trông giống như

Điều kiện tìm kiếm mà bạn chỉ định có thể chứa bất kỳ toán tử so sánh nào hoặc vị từ BETWEEN, DISTINCT, IN, LIKE, EXISTS, IS NULL và IS NOT NULL

Bạn có thể kết hợp hai vị từ bất kỳ với AND và OR. Ngoài ra, bạn có thể sử dụng từ khóa NOT để xác định rằng điều kiện tìm kiếm mà bạn muốn là giá trị phủ định của điều kiện tìm kiếm đã chỉ định. Mệnh đề WHERE có thể có bao nhiêu vị ngữ tùy thích

  • VÀ nói rằng, để một hàng đủ điều kiện, hàng đó phải đáp ứng cả hai vị từ của điều kiện tìm kiếm. Ví dụ, để biết nhân viên nào trong bộ phận D21 được tuyển dụng sau ngày 31 tháng 12 năm 1987, hãy chỉ định.
    ...
      WHERE WORKDEPT = 'D21' AND HIREDATE > '1987-12-31'
  • OR nói rằng, để một hàng đủ điều kiện, hàng đó có thể đáp ứng điều kiện được đặt bởi một trong hai hoặc cả hai vị từ của điều kiện tìm kiếm. Ví dụ: để tìm ra nhân viên nào ở bộ phận C01 hoặc D11, bạn có thể chỉ định.
    ...
      WHERE WORKDEPT = 'C01' OR WORKDEPT = 'D11'

    Ghi chú. Bạn cũng có thể sử dụng IN để chỉ định yêu cầu này. NƠI LÀM VIỆC TẠI [

    select column1, column2, column3
    where
    [column1 like '05%' 
    or column1 like '06%' 
    or column1 like '07%']
    from my_table;
    
    2C01
    select column1, column2, column3
    where
    [column1 like '05%' 
    or column1 like '06%' 
    or column1 like '07%']
    from my_table;
    
    2,
    select column1, column2, column3
    where
    [column1 like '05%' 
    or column1 like '06%' 
    or column1 like '07%']
    from my_table;
    
    2D11
    select column1, column2, column3
    where
    [column1 like '05%' 
    or column1 like '06%' 
    or column1 like '07%']
    from my_table;
    
    2].

  • NOT nói rằng, để đủ điều kiện, một hàng không được đáp ứng các tiêu chí do điều kiện tìm kiếm hoặc vị từ theo sau NOT đặt ra. Ví dụ: để tìm tất cả nhân viên trong bộ phận E11 ngoại trừ những người có mã công việc bằng nhân viên phân tích, bạn có thể chỉ định.
    ...
      WHERE WORKDEPT = 'E11' AND NOT JOB = 'ANALYST'

Khi SQL đánh giá các điều kiện tìm kiếm có chứa các trình kết nối này, nó sẽ thực hiện theo một thứ tự cụ thể. Đầu tiên, SQL đánh giá các mệnh đề NOT, tiếp theo đánh giá các mệnh đề AND, sau đó là các mệnh đề OR

Bạn có thể thay đổi thứ tự đánh giá bằng cách sử dụng dấu ngoặc đơn. Các điều kiện tìm kiếm trong ngoặc đơn được đánh giá đầu tiên. Ví dụ: để chọn tất cả nhân viên thuộc phòng E11 và E21 có trình độ học vấn lớn hơn 12, bạn có thể chỉ định

________số 8

Dấu ngoặc đơn xác định ý nghĩa của điều kiện tìm kiếm. Trong ví dụ này, bạn muốn tất cả các hàng có một

  • giá trị WORKDEPT của E11 hoặc E21, và
  • Giá trị EDLEVEL lớn hơn 12

Nếu bạn không sử dụng dấu ngoặc đơn

...
  WHERE EDLEVEL > 12 AND WORKDEPT = 'E11'
    OR WORKDEPT = 'E21'

Kết quả của bạn là khác nhau. Các hàng được chọn là các hàng có

  • WORKDEPT = E11 và EDLEVEL > 12 hoặc
  • WORKDEPT = E21, bất kể giá trị EDLEVEL là gì

Nếu bạn đang kết hợp nhiều phép so sánh bằng nhau, bạn có thể viết vị từ bằng AND như trong ví dụ sau

select column1, column2, column3
where
[column1 like '05%' 
or column1 like '06%' 
or column1 like '07%']
from my_table;
0

Bạn cũng có thể so sánh hai danh sách, ví dụ

select column1, column2, column3
where
[column1 like '05%' 
or column1 like '06%' 
or column1 like '07%']
from my_table;
1

Khi hai danh sách được sử dụng, mục đầu tiên trong danh sách đầu tiên được so sánh với mục đầu tiên trong danh sách thứ hai, v.v. Vì vậy, mỗi danh sách phải chứa cùng một số mục. Sử dụng danh sách giống như viết truy vấn bằng AND. Danh sách chỉ có thể được sử dụng với các toán tử so sánh bằng và không bằng

Bạn có thể có nhiều câu lệnh AND trong SQL không?

Có thể kết nối bất kỳ số lượng điều kiện nào với AND . Tất cả các điều kiện phải đúng để hàng được đưa vào kết quả. AND có tính giao hoán [không phụ thuộc vào thứ tự]. WHERE điều kiện1 AND điều kiện2 tương đương với WHERE điều kiện2 AND điều kiện1.

Cách sử dụng 2 điều kiện trong mệnh đề WHERE trong SQL?

Ví dụ - Hai Điều kiện trong Mệnh đề WHERE [VÀ Điều kiện] . use the AND condition in the WHERE clause to specify more than 1 condition that must be met for the record to be selected.

Việc sử dụng && trong SQL là gì?

Trả về true nếu cả hai biểu thức đều đúng ; . .

Làm cách nào để sử dụng nhiều điều kiện trong toán tử like trong SQL?

“Toán tử LIKE trong SQL cho phép thực hiện đánh giá logic cho mọi bản ghi phù hợp. Sử dụng toán tử LIKE, bạn có thể chỉ định một hoặc nhiều điều kiện . Điều này cho phép bạn thực hiện một hành động như chọn, xóa và cập nhật bất kỳ cột hoặc bản ghi nào phù hợp với các điều kiện đã chỉ định.

Chủ Đề