ใช่ ให้เราดูการทำงานของตัวดำเนินการ ternary ในภาษา C หรือ C++ ก่อน
X=(X> 10 &&( X-Y) <0) ?:X:(X-Y);
นี่คือรหัสสาธิตในภาษา C หลังจากนั้นเราจะตรวจสอบใน MySQL รหัส C มีดังต่อไปนี้ -
#includeint main() { int X; int Y; ผลลัพธ์ int; printf("ป้อนค่าสำหรับ X:"); scanf("%d",&X); printf("ป้อนค่าสำหรับ Y:"); scanf("%d",&Y); ผลลัพธ์=( X> 1 &&(X-Y) <0) ? X:(X-Y); printf("ผลลัพธ์คือ=%d",ผลลัพธ์); คืนค่า 0;}
ภาพรวมของรหัส C มีดังต่อไปนี้ -
ต่อไปนี้เป็นผลลัพธ์ -
ไวยากรณ์สำหรับการดำเนินการแบบไตรภาคของ MySQL มีดังต่อไปนี้ -
เลือกกรณีเมื่อ yourtableAliasName.yourColumnName1> 1 AND(yourtableAliasName.yourColumnName1-yourtableAliasName.yourColumnName2) <0 THEN0 ELSE (yourtableAliasName.yourColumnName1-yourtableAliasName.yourColumnName2)END AS anyAliasName yourtable จาก yourTsเพื่อให้เข้าใจไวยากรณ์ข้างต้นสำหรับการดำเนินการ Trenary ให้เราสร้างตาราง แบบสอบถามเพื่อสร้างตารางมีดังนี้ −
mysql> สร้างตาราง TernaryOperationDemo -> ( -> X int, -> Y int -> ); ตกลง ตกลง 0 แถวได้รับผลกระทบ (0.61 วินาที)แทรกบางระเบียนในตารางโดยใช้คำสั่งแทรก แบบสอบถามมีดังนี้ −
mysql> แทรกลงในค่า TernaryOperationDemo (10,5); แบบสอบถามตกลง 1 แถวได้รับผลกระทบ (0.14 วินาที) mysql> แทรกลงในค่า TernaryOperationDemo (5,15); แบบสอบถามตกลง 1 แถวได้รับผลกระทบ (0.16 วินาที) mysql> แทรก ลงในค่า TernaryOperationDemo (20,15); แบบสอบถามตกลง 1 แถวได้รับผลกระทบ (0.15 วินาที) mysql> แทรกลงในค่า TernaryOperationDemo (15,25); แบบสอบถามตกลง 1 แถวได้รับผลกระทบ (0.13 วินาที) mysql> แทรกลงในค่า TernaryOperationDemo (10, -11);แบบสอบถามตกลง ได้รับผลกระทบ 1 แถว (0.15 วินาที)แสดงระเบียนทั้งหมดจากตารางโดยใช้คำสั่ง select -
mysql> เลือก *จาก TernaryOperationDemo;ต่อไปนี้เป็นผลลัพธ์ -
<ก่อนหน้า>+------+------+| X | Y |+------+------+| 10 | 5 || 5 | 15 || 20 | 15 || 15 | 25 || 10 | -11 |+------+------+5 แถวในชุด (0.00 วินาที)
นี่คือแบบสอบถามสำหรับการดำเนินการไตรภาค -
mysql> เลือกกรณีเมื่อ tbl.X> 1 AND (tbl.X-tbl.Y) <0 แล้ว 0 ELSE (tbl.X-tbl.Y) END ASResult จาก TernaryOperationDemo tbl;
ต่อไปนี้เป็นผลลัพธ์ -
<ก่อนหน้า>+---------+| ผลลัพธ์ |+---------+| 5 || 0 || 5 || 0 || 21 |+-------+5 แถวในชุด (0.00 วินาที)