Tôi muốn viết câu lệnh IF
bên trong Stored procedure
trong MySQL theo cách sau:
IF [exp1 and exp2 and exp3] or exp4
Tôi biết MySQL sẽ coi
IF [yourCondition [logical operator[OR, AND] another condition] ] THEN
0 là một cuộc gọi chức năng. Nhưng tôi hy vọng bạn có được những gì tôi đang cố gắng đạt được. Tôi là người mới đến cú pháp MySQL.Đã hỏi ngày 22 tháng 2 năm 2017 lúc 12:05Feb 22, 2017 at 12:05
Avinash Chavanavinash Chavanavinash chavan
6972 Huy hiệu vàng10 Huy hiệu bạc27 Huy hiệu đồng2 gold badges10 silver badges27 bronze badges
3
Trong một thủ tục, việc sử dụng IF
khá thẳng về phía trước:
IF [yourCondition [logical operator[OR, AND] another condition] ] THEN
Vì vậy, trong một ví dụ thực tế:
....
DECLARE m integer;
DECLARE n integer;
SET m = 1;
SET n = 0;
IF [[m>n AND m=1 AND n=0] OR m=n]THEN
some code here
END IF;
Việc đánh giá các điều kiện tuân theo quy tắc ngoặc đơn giống như trong một hoạt động toán học.
Bạn có thể tham khảo các tài liệu
Đã trả lời ngày 22 tháng 2 năm 2017 lúc 12:15Feb 22, 2017 at 12:15
Jorge Camposjorge CamposJorge Campos
22K7 Huy hiệu vàng57 Huy hiệu bạc84 Huy hiệu đồng7 gold badges57 silver badges84 bronze badges
Một aproach hợp lệ khác:
Nếu việc xác nhận là đúng, hãy làm điều này được xuất hiện. Nếu xác nhận TE là sai, hãy làm điều đó được xuất hiện.do this is ejecuted.
if te validation is false, do that is ejecuted.
Lưu ý rằng dấu phẩy
IF [yourCondition [logical operator[OR, AND] another condition] ] THEN
2 là dấu phân cách trong MySQL.if[[`something` = 'on' AND `other` = 'on' ],'do this', 'do that'] AS `do_something_things`,
Đã trả lời ngày 9 tháng 3 lúc 18:46Mar 9 at 18:46
Ale Dcale DCAle DC
1.2289 huy hiệu bạc17 huy hiệu đồng9 silver badges17 bronze badges
Bạn có thể sử dụng câu lệnh IF trong một quy trình được lưu trữ với nhiều điều kiện với sự trợ giúp của và hoặc hoặc toán tử. Cú pháp như sau -
DECLARE X int; DECLARE Y int; SET X = value1; SET Y = value2; IF [ [X < Y AND X > value1 AND Y >value2] OR X! = anyValueToCompare] THEN yourStatement; ELSE yourStatement; END IF
Bây giờ để hiểu cú pháp trên, chúng ta hãy tạo một quy trình được lưu trữ. Truy vấn để tạo một quy trình được lưu trữ như sau -
mysql> create procedure SP_IFELSEDEMO[] -> BEGIN -> DECLARE X int; -> DECLARE Y int; -> SET X=100; -> SET Y=400; -> IF [ [X < Y AND X > 99 AND Y >300] OR X! = 10 ] THEN -> SELECT 'Logic is Correct'; -> ELSE -> SELECT 'Logic is not Correct'; -> END IF; -> END; -> // Query OK, 0 rows affected [0.27 sec] mysql> DELIMITER ;
Bây giờ hãy gọi thủ tục được lưu trữ với sự trợ giúp của lệnh cuộc gọi. Truy vấn như sau -
mysql> call SP_IF ELSEDEMO[];
Đầu ra
+------------------+ | Logic is Correct | +------------------+ | Logic is Correct | +------------------+ 1 row in set [0.04 sec] Query OK, 0 rows affected [0.07 sec]
Cập nhật vào ngày 30 tháng 3 năm 2019 22:30:25
- Câu hỏi và câu trả lời liên quan
- Hiển thị hồ sơ với các điều kiện được đặt bằng cách sử dụng câu lệnh IF trong câu lệnh Update với MySQL
- Làm thế nào để sử dụng nhiều điều kiện trong một câu lệnh IF trong Python?
- Cập nhật nhiều giá trị trong bảng với câu lệnh MySQL nếu câu lệnh
- Mysql Chọn nếu câu lệnh với hoặc?
- Trong điều kiện nào, câu lệnh trường hợp MySQL trả về null?
- Nhiều đếm [] cho nhiều điều kiện trong một truy vấn MySQL?
- Làm thế nào để tạo điều kiện trong bảng MySQL với nhiều cột?
- Hiển thị câu lệnh bảng với nhiều giá trị tương tự trong MySQL?
- Nếu tuyên bố khác trong câu lệnh MySQL?
- Làm thế nào để làm việc nhiều và các điều kiện trong MySQL?
- Truy vấn MongoDB đến $ Pull / $ Unset với nhiều điều kiện?
- Làm thế nào để thực hiện trong khi vòng lặp với IF Statement MySQL?
- Tuyên bố chuyển đổi Java với nhiều trường hợp.
- MySQL chọn câu lệnh khác biệt cho nhiều cột?
- Chèn nhiều bộ giá trị trong một câu lệnh với MySQL?