Chúng ta có thể sử dụng mệnh đề if trong WHERE trong MySQL khô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 Show 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 Ví 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ố
Đầu ra mẫu mysql> SELECT IF(1>3,'true','false'); +------------------------+ | IF(1>3,'true','false') | +------------------------+ | false | +------------------------+ 1 row in set (0.00 sec) Ví 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ố
Đầ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à English Book for pub lang English nếu không nó trả về 'Other Language' Mã số
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ố
bảng mẫu. book_mast Đầu ra mẫu ________số 8_______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ố 0Đầu ra mẫu 1Hà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ố 2Đầu ra mẫu 3MySQL 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ố 4Đầu ra mẫu 5Mộ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ả Chúng ta có thể có điều kiện if trong mệnh đề WHERE không?Trả lời, không . IF là câu lệnh luồng điều khiển được sử dụng để điều khiển luồng logic của tập lệnh, thủ tục được lưu trữ hoặc hàm do người dùng xác định.
Chúng ta có thể sử dụng điều kiện if trong truy vấn MySQL không?Định nghĩa và cách sử dụng
Làm cách nào để thêm nhiều điều kiện trong mệnh đề WHERE trong MySQL?MySQL - Mệnh đề WHERE . Bạn có thể sử dụng một hoặc nhiều bảng được phân tách bằng dấu phẩy để bao gồm các điều kiện khác nhau bằng cách sử dụng mệnh đề WHERE, nhưng mệnh đề WHERE là một phần tùy chọn của lệnh SELECT Bạn có thể chỉ định bất kỳ điều kiện nào bằng mệnh đề WHERE Bạn có thể chỉ định nhiều hơn một điều kiện bằng toán tử AND hoặc OR Bạn có thể đặt câu lệnh if trong truy vấn không?Hàm IF() có thể được sử dụng độc lập trực tiếp với các truy vấn MySQL , tuy nhiên, MySQL IF ELSE được sử dụng như một câu lệnh như một phần của các thủ tục hoặc hàm được lưu trữ. |