Làm cách nào để thực hiện câu lệnh if trong truy vấn mysql?

mysql. Hàm IF( )

Cải thiện bài viết

Lưu bài viết

Thích bài viết

  • Độ khó. Dễ dàng
  • Cập nhật lần cuối. 21 tháng 11 năm 2019

  • Đọc
  • Bàn luận
  • khóa học
  • Luyện tập
  • Băng hình
  • Cải thiện bài viết

    Lưu bài viết

    Hàm IF() của MySQL được sử dụng để xác thực một điều kiện. Hàm IF() trả về một giá trị nếu điều kiện là TRUE và một giá trị khác nếu điều kiện là FALSE. Hàm MySQL IF() có thể trả về các giá trị có thể là số hoặc chuỗi tùy thuộc vào ngữ cảnh mà hàm được sử dụng
    Hàm IF() chấp nhận một tham số là điều kiện để đánh giá

    cú pháp

    IF(condition, true_value, false_value)

    Thông số được sử dụng

    • điều kiện - Nó được sử dụng để chỉ định điều kiện được đánh giá
    • true_value – Đây là một tham số tùy chọn được sử dụng để chỉ định giá trị được trả về nếu điều kiện đánh giá là đúng
    • false_value – Đây là một tham số tùy chọn được sử dụng để chỉ định giá trị được trả về nếu điều kiện đánh giá là sai

    Giá trị trả về
    Hàm MySQL IF() trả về một giá trị nếu điều kiện là TRUE hoặc một giá trị khác nếu điều kiện là FALSE

    Các phiên bản được hỗ trợ của MySQL

    • mysql 5. 7
    • mysql 5. 6
    • mysql 5. 5
    • mysql 5. 1
    • mysql 5. 0
    • mysql 4. 1
    • mysql 4. 0
    • Mysql 3. 23

    Ví dụ 1. Thực hiện hàm IF() với điều kiện số và trả về giá trị chuỗi

    SELECT IF(5<12, 'TRUE', 'FALSE'); 

    đầu ra

    TRUE 

    Ví dụ-2. Thực hiện hàm IF() để so sánh hai chuỗi

    SELECT IF(STRCMP('geeksforgeeks', 'gfg')=0, 'TRUE', 'FALSE'); 

    đầu ra

    FALSE 

    Ví dụ-3. Triển khai hàm IF() trên điều kiện số và trả về giá trị số

    SELECT IF(5<12, '1', '0'); 

    đầu ra

    1 

    Ghi chú cá nhân của tôi arrow_drop_up

    Tiết kiệm

    Vui lòng Đăng nhập để nhận xét.

    Hướng dẫn MySQL này giải thích cách sử dụng câu lệnh IF-THEN-ELSE trong MySQL với cú pháp và ví dụ

    Sự miêu tả

    Trong MySQL, câu lệnh IF-THEN-ELSE được sử dụng để thực thi mã khi điều kiện là TRUE hoặc thực thi mã khác nếu điều kiện ước tính là FALSE

    cú pháp

    Cú pháp của câu lệnh IF-THEN-ELSE trong MySQL là

    IF condition1 THEN
       {...statements to execute when condition1 is TRUE...}
    
    [ ELSEIF condition2 THEN
       {...statements to execute when condition1 is FALSE and condition2 is TRUE...} ]
    
    [ ELSE
       {...statements to execute when both condition1 and condition2 are FALSE...} ]
    
    END IF;
    ELSEIFTùy chọn. Bạn sẽ sử dụng điều kiện ELSEIF khi bạn muốn thực hiện một tập hợp các câu lệnh khi điều kiện thứ hai (nghĩa là. điều kiện2) là ĐÚNG. KHÁCTùy chọn. Bạn sẽ sử dụng điều kiện ELSE khi bạn muốn thực thi một tập hợp các câu lệnh khi không có điều kiện IF hoặc ELSEIF nào được đánh giá là TRUE

    Ghi chú

    • Khi một điều kiện được tìm thấy là TRUE, câu lệnh IF-THEN-ELSE sẽ thực thi mã tương ứng và không đánh giá các điều kiện nữa
    • Nếu không có điều kiện nào được đáp ứng, phần ELSE của câu lệnh IF-THEN-ELSE sẽ được thực thi
    • Điều quan trọng cần lưu ý là các phần ELSEIF và ELSE là tùy chọn

    Thí dụ

    Sau đây là ví dụ sử dụng câu lệnh IF-THEN-ELSE trong hàm MySQL

    ________số 8_______

    Trong ví dụ về câu lệnh IF-THEN-ELSE này, chúng ta đã tạo một hàm gọi là IncomeLevel. Nó có một tham số được gọi là daily_value và nó trả về một varchar(20). Hàm sẽ trả về mức thu nhập dựa trên giá_trị_tháng

    MySQL IF() nhận ba biểu thức và nếu biểu thức đầu tiên là true, không phải 0 và không phải NULL, nó sẽ trả về biểu thức thứ hai. Mặt khác, nó trả về biểu thức thứ ba

    Tùy thuộc vào ngữ cảnh mà nó được sử dụng, nó trả về giá trị số hoặc chuỗi

    cú pháp

    IF(expression ,expr_true, expr_false);
    

    Thông số

    TênMô tảKiểu trả vềbiểu thứcMột biểu thức. expr_trueTrả về khi điều kiện là TRUE. một chuỗi khi expr_true là một chuỗi, một giá trị dấu phẩy động khi expr _true là một giá trị dấu phẩy động và một số nguyên khi expr _true là một số nguyên. expr_falseTrả về khi điều kiện là FALSE. một chuỗi khi expr_false là một chuỗi, một giá trị dấu phẩy động khi expr _false là một giá trị dấu phẩy động và một số nguyên khi expr _false là một số nguyên


    Phiên bản MySQL. 5. 6

    Ghi chú. Có một hàm khác, khác với hàm IF() được mô tả trong chương thủ tục MySQL

    Trình bày bằng hình ảnh

    Làm cách nào để thực hiện câu lệnh if trong truy vấn mysql?

    Thí dụ. Hàm IF() của MySQL

    Trong câu lệnh sau, vì 1 nhỏ hơn 3, nên hàm IF() trả về biểu thức thứ ba, i. e. sai

    Mã số

    SELECT IF(1>3,'true','false');
    
    

    Đầu ra mẫu

    mysql> SELECT IF(1>3,'true','false');
    +------------------------+
    | IF(1>3,'true','false') |
    +------------------------+
    | false                  | 
    +------------------------+
    1 row in set (0.00 sec)
    

    Thí dụ. hàm IF() với CASE

    Trong ví dụ sau, câu lệnh MySQL trả về biểu thức thứ ba 'false' vì biểu thức đầu tiên không đúng

    Mã số

    SELECT IF((SELECT CASE WHEN 1>0 THEN 'true' ELSE 'false' END),'true','false');
    
    

    Đầu ra mẫu

    mysql> SELECT IF((SELECT CASE WHEN 1>0 THEN 'true' ELSE 'false' END),'true','false');
    +------------------------------------------------------------------------+
    | IF((SELECT CASE WHEN 1>0 THEN 'true' ELSE 'false' END),'true','false') |
    +------------------------------------------------------------------------+
    | false                                                                  | 
    +------------------------------------------------------------------------+
    1 row in set, 1 warning (0.02 sec)
    

    MySQL IF trong câu lệnh CHỌN

    Câu lệnh MySQL sau đây trả về tên cuốn sách và cuốn sách đã được xuất bản bằng ngôn ngữ nào. Trạng thái của ngôn ngữ là Sách tiếng Anh cho pub_lang Tiếng Anh khác, nó trả về 'Ngôn ngữ khác'

    Mã số

    SELECT book_name,
    IF(pub_lang='English',"English Book","Other Language") 
    AS Language 
    FROM book_mast;
    
    

    bảng mẫu. book_mast


    Đầu ra mẫu

    mysql> SELECT book_name,
        -> IF(pub_lang="English", "Engllish Book", "Other Lnaguage")
        -> AS Language
        -> FROM book_mast;
    +-------------------------------------+----------------+
    | book_name                           | Language       |
    +-------------------------------------+----------------+
    | Introduction to Electrodynamics     | Engllish Book  | 
    | Understanding of Steel Construction | Engllish Book  | 
    | Guide to Networking                 | Other Lnaguage | 
    | Transfer  of Heat and Mass          | Engllish Book  | 
    | Conceptual Physics                  | Other Lnaguage | 
    | Fundamentals of Heat                | Other Lnaguage | 
    | Advanced 3d Graphics                | Other Lnaguage | 
    | Human Anatomy                       | Other Lnaguage | 
    | Mental Health Nursing               | Engllish Book  | 
    | Fundamentals of Thermodynamics      | Engllish Book  | 
    | The Experimental Analysis of Cat    | Other Lnaguage | 
    | The Nature  of World                | Engllish Book  | 
    | Environment a Sustainable Future    | Other Lnaguage | 
    | Concepts in Health                  | Other Lnaguage | 
    | Anatomy & Physiology                | Other Lnaguage | 
    | Networks and Telecommunications     | Other Lnaguage | 
    +-------------------------------------+----------------+
    16 rows in set (0.02 sec)
    

    MySQL CHỌN trong câu lệnh IF

    Câu lệnh MySQL sau đây trả về tên sách, số isbn và bí danh cột Trang/Giá của một biểu thức từ bảng book_mast. Trang/Giá sẽ là Giá khi số lượng ngôn ngữ khác ngoài tiếng Anh nhiều hơn ngôn ngữ khác tiếng Anh thì Trang/Giá sẽ là Trang và không có trang. Ở đây trong ví dụ này, số sách ngôn ngữ khác nhiều hơn số sách tiếng Anh

    Mã số

    SELECT book_name,isbn_no,
    IF((SELECT COUNT(*) FROM book_mast WHERE pub_lang='English')>
    (SELECT COUNT(*) FROM book_mast WHERE pub_lang<>'English'),
    (CONCAT("Pages: ",no_page)),(CONCAT("Price: ",book_price))) 
    AS "Page / Price"
    FROM book_mast;
    
    

    bảng mẫu. book_mast


    Đầu ra mẫu

    mysql> SELECT book_name,isbn_no,
        -> IF((SELECT COUNT(*) FROM book_mast WHERE pub_lang='English')>
        -> (SELECT COUNT(*) FROM book_mast WHERE pub_lang<>'English'),
        -> (CONCAT("Pages: ",no_page)),(CONCAT("Price: ",book_price))) 
        -> AS "Page / Price"
        -> FROM book_mast;
    +-------------------------------------+-------------+---------------+
    | book_name                           | isbn_no     | Page / Price  |
    +-------------------------------------+-------------+---------------+
    | Introduction to Electrodynamics     | 0000979001  | Price: 85.00  | 
    | Understanding of Steel Construction | 0000979002  | Price: 105.50 | 
    | Guide to Networking                 | 0000979003  | Price: 200.00 | 
    | Transfer  of Heat and Mass          | 0000979004  | Price: 250.00 | 
    | Conceptual Physics                  | 0000979005  | Price: 145.00 | 
    | Fundamentals of Heat                | 0000979006  | Price: 112.00 | 
    | Advanced 3d Graphics                | 0000979007  | Price: 56.00  | 
    | Human Anatomy                       | 0000979008  | Price: 50.50  | 
    | Mental Health Nursing               | 0000979009  | Price: 145.00 | 
    | Fundamentals of Thermodynamics      | 0000979010  | Price: 225.00 | 
    | The Experimental Analysis of Cat    | 0000979011  | Price: 95.00  | 
    | The Nature  of World                | 0000979012  | Price: 88.00  | 
    | Environment a Sustainable Future    | 0000979013  | Price: 100.00 | 
    | Concepts in Health                  | 0000979014  | Price: 180.00 | 
    | Anatomy & Physiology                | 0000979015  | Price: 135.00 | 
    | Networks and Telecommunications     | 00009790_16 | Price: 45.00  | 
    +-------------------------------------+-------------+---------------+
    16 rows in set (0.00 sec)
    

    Hiển thị văn bản tùy chỉnh thay vì NULL bằng hàm MySQL IF

    Trong bảng book_mast, ngôn ngữ xuất bản của một số cuốn sách chưa được đặt, do đó khi chúng tôi chọn book_mast, cột pub_lang hiển thị giá trị NULL, không có ý nghĩa cho mục đích báo cáo. Xem truy vấn sau

    mysql> SELECT book_id, book_name, pub_lang
        -> FROM book_mast;
    +---------+-------------------------------------+----------+
    | book_id | book_name                           | pub_lang |
    +---------+-------------------------------------+----------+
    | BK001   | Introduction to Electrodynamics     | English  |
    | BK002   | Understanding of Steel Construction | English  |
    | BK003   | Guide to Networking                 | Hindi    |
    | BK004   | Transfer  of Heat and Mass          | English  |
    | BK005   | Conceptual Physics                  | NULL     |
    | BK006   | Fundamentals of Heat                | German   |
    | BK007   | Advanced 3d Graphics                | Hindi    |
    | BK008   | Human Anatomy                       | German   |
    | BK009   | Mental Health Nursing               | English  |
    | BK010   | Fundamentals of Thermodynamics      | English  |
    | BK011   | The Experimental Analysis of Cat    | French   |
    | BK012   | The Nature  of World                | English  |
    | BK013   | Environment a Sustainable Future    | German   |
    | BK014   | Concepts in Health                  | NULL     |
    | BK015   | Anatomy & Physiology                | Hindi    |
    | BK016   | Networks and Telecommunications     | French   |
    +---------+-------------------------------------+----------+
    16 rows in set (0.00 sec)
    

    Chúng ta có thể tránh hiển thị NULL ở đầu ra bằng cách sử dụng hàm IF để trả về N/A thay vì NULL. Đây là truy vấn dưới đây

    Mã số

    SELECT IF(1>3,'true','false');
    
    
    0

    Đầu ra mẫu

    SELECT IF(1>3,'true','false');
    
    
    1

    Hàm IF của MySQL với các hàm tổng hợp

    MySQL SUM IF – Hàm IF với hàm SUM

    bảng mẫu. mua


    Câu lệnh SQL sau đây sẽ hiển thị số lượng mua sách xuất bản theo ngôn ngữ tiếng Anh và không phải tiếng Anh liên tiếp

    Mã số

    SELECT IF(1>3,'true','false');
    
    
    2

    Đầu ra mẫu

    SELECT IF(1>3,'true','false');
    
    
    3

    MySQL COUNT IF – Hàm IF với hàm COUNT

    bảng mẫu. nhà xuất bản


    Câu lệnh sql sau đây sẽ hiển thị số lượng nhà xuất bản liên tiếp cho mỗi quốc gia được liệt kê trong bảng nhà xuất bản

    Mã số

    SELECT IF(1>3,'true','false');
    
    
    4

    Đầu ra mẫu

    SELECT IF(1>3,'true','false');
    
    
    5

    Một cách khác để đạt được kết quả tương tự, bạn có thể sử dụng mệnh đề GROUP BY và hàm COUNT mà không sử dụng hàm IF, báo cáo hiển thị khác hẳn. Đầu ra ở trên đã hiển thị trong một hàng nhưng truy vấn sau đây sẽ hiển thị số lượng hàng cho số lượng quốc gia khác nhau. Đây là mã và kết quả

    Làm cách nào để sử dụng hàm if trong truy vấn MySQL?

    Hàm IF() của MySQL .
    Trả về "YES" nếu điều kiện là TRUE, hoặc "NO" nếu điều kiện là FALSE. .
    Trả về 5 nếu điều kiện là TRUE, hoặc 10 nếu điều kiện là FALSE. .
    Kiểm tra xem hai chuỗi có giống nhau không và trả về "CÓ" nếu đúng hoặc "KHÔNG" nếu không

    Chúng ta có thể sử dụng câu lệnh if trong truy vấn SELECT trong MySQL không?

    Hoàn toàn có thể sử dụng hàm IF() của MySQL trong câu lệnh SELECT bằng cách cung cấp tên của cột cùng với một điều kiện làm đối số đầu tiên của hàm IF() . Để hiểu nó, hãy xem xét dữ liệu sau từ bảng 'Sinh viên'.

    Tôi có thể sử dụng điều kiện if trong truy vấn SQL không?

    điều kiện IF trong SQL . Hàm trả về một giá trị nếu điều kiện là TRUE và giá trị khác nếu điều kiện là FALSE

    Chúng ta có thể sử dụng == trong MySQL không?

    Tìm hiểu MySQL từ đầu về Khoa học dữ liệu và Phân tích . Nếu bạn sử dụng dấu bằng kép (==) trong MySQL, bạn sẽ nhận được thông báo lỗi. Bây giờ, hãy so sánh giá trị biến trên với 10. Nếu cả hai giá trị giống nhau thì kết quả sẽ là 1 ngược lại là 0. It can be used to compare two values. If you use double equal sign(==) in MySQL, you will get an error message. Now, compare the above variable value with 10. If both the values are same then the result will be 1 otherwise 0.