Computer >> คอมพิวเตอร์ >  >> การเขียนโปรแกรม >> MySQL

จะแทนที่ค่าของผลตอบแทนที่เลือกใน MySQL ได้อย่างไร


คุณสามารถใช้คำสั่ง select case สำหรับสิ่งนี้ ไวยากรณ์มีดังนี้

เลือก yourColumnName1,yourColumnName2,...N,กรณีที่ yourColumnName=1 แล้ว 'true'else 'false'end เป็น anyVariableName จาก yourTableName;

เพื่อให้เข้าใจไวยากรณ์ข้างต้น ให้เราสร้างตาราง แบบสอบถามเพื่อสร้างตารางมีดังนี้

mysql> สร้างตาราง selectReturnDemo-> (-> Id int,-> Name varchar(100),-> isGreaterthan18 tinyint(1)-> );Query OK, 0 แถวได้รับผลกระทบ (0.62 วินาที)

ตอนนี้คุณสามารถแทรกบางระเบียนในตารางโดยใช้คำสั่งแทรก แบบสอบถามมีดังนี้

mysql> แทรกลงในค่า selectReturnDemo (1,'Carol',0); แบบสอบถามตกลง 1 แถวได้รับผลกระทบ (0.23 วินาที) mysql> แทรกลงในค่า selectReturnDemo (2,'Bob',1); แบบสอบถามตกลง 1 แถว ได้รับผลกระทบ (0.21 วินาที) mysql> แทรกลงในค่า selectReturnDemo (3,'Mike',1); แบบสอบถามตกลง 1 แถวได้รับผลกระทบ (0.18 วินาที) mysql> แทรกลงในค่า selectReturnDemo (4,'David',0); แบบสอบถามตกลง 1 แถวได้รับผลกระทบ (0.21 วินาที) mysql> แทรกลงในค่า selectReturnDemo (5,'Adam',1); แบบสอบถามตกลง ได้รับผลกระทบ 1 แถว (0.10 วินาที)

แสดงระเบียนทั้งหมดจากตารางโดยใช้คำสั่ง select แบบสอบถามมีดังนี้

mysql> เลือก *จาก selectReturnDemo;

ต่อไปนี้เป็นผลลัพธ์

<ก่อนหน้า>+------+---------+----------------+| รหัส | ชื่อ | isGreaterthan18 |+------+---------+-----------------+| 1 | แครอล | 0 || 2 | บ๊อบ | 1 || 3 | ไมค์ | 1 || 4 | เดวิด | 0 || 5 | อดัม | 1 |+------+-------+----------------+5 แถวในชุด (0.00 วินาที)

นี่คือแบบสอบถามเพื่อแทนที่ค่าด้วยการเลือกส่งคืน แบบสอบถามมีดังนี้

mysql> เลือก Id,Name,-> case เมื่อ isGreaterthan18=1 จากนั้น 'true'-> else 'false'-> จะสิ้นสุดด้วย AgeIsGreaterthan18-> จาก selectReturnDemo;

ต่อไปนี้เป็นผลลัพธ์

<ก่อนหน้า>+------+-------+--------------------+| รหัส | ชื่อ | AgeIsGreaterthan18 |+------+-------+--------------------+| 1 | แครอล | เท็จ || 2 | บ๊อบ | จริง || 3 | ไมค์ | จริง || 4 | เดวิด | เท็จ || 5 | อดัม | true |+------+-------+--------------------+5 แถวในชุด (0.00 วินาที)