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

ตั้งค่า ID ที่แตกต่างกันสำหรับเร็กคอร์ดที่มีเงื่อนไขโดยใช้การสืบค้น MySQL เดียว


สำหรับเงื่อนไข ให้ใช้คำสั่ง CASE ใน MySQL ให้เราสร้างตารางก่อน -

mysql> สร้างตาราง DemoTable1545 -> ( -> Id int, -> FirstName varchar(20) -> ); ตกลง ตกลง 0 แถวได้รับผลกระทบ (1.65 วินาที)

แทรกระเบียนบางส่วนในตารางโดยใช้คำสั่ง insert -

mysql> แทรกลงในค่า DemoTable1545 (1,'John');Query OK, 1 แถวได้รับผลกระทบ (0.15 วินาที)mysql> แทรกลงในค่า DemoTable1545 (2,'Chris'); Query OK, 1 แถวได้รับผลกระทบ (0.18 วินาที )mysql> แทรกลงในค่า DemoTable1545 (3,'Bob'); แบบสอบถามตกลง ได้รับผลกระทบ 1 แถว (0.15 วินาที)

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

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

สิ่งนี้จะสร้างผลลัพธ์ต่อไปนี้ -

<ก่อนหน้า>+------+-----------+| รหัส | ชื่อจริง |+------+-----------+| 1 | จอห์น || 2 | คริส || 3 | Bob |+------+-----------+3 แถวในชุด (0.00 วินาที)

นี่คือการสืบค้นเพื่อตั้งค่า ID ต่างๆ โดยใช้คำสั่ง CASE -

mysql> อัปเดต DemoTable1545 -> set Id=-> case เมื่อ FirstName เช่น '%John%' จากนั้น 101 -> เมื่อ FirstName ชอบ '%Chris%' จากนั้น 201 -> เมื่อ FirstName ชอบ '%Bob%' แล้ว 501 -> else Id -> end;Query OK, 3 แถวได้รับผลกระทบ (0.18 วินาที) แถวที่ตรงกัน:3 เปลี่ยนแล้ว:3 คำเตือน:0

ให้เราตรวจสอบบันทึกตารางอีกครั้ง -

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

สิ่งนี้จะสร้างผลลัพธ์ต่อไปนี้ -

<ก่อนหน้า>+------+-----------+| รหัส | ชื่อจริง |+------+-----------+| 101 | จอห์น || 201 | คริส || 501 | Bob |+------+-----------+3 แถวในชุด (0.00 วินาที)