ในการตั้งค่าฟิลด์ที่กำหนดเอง ให้ใช้ FIND_IN_SET() ให้เราสร้างตารางก่อน -
mysql> สร้างตาราง DemoTable677 ( UserId int ไม่ใช่ NULL AUTO_INCREMENT PRIMARY KEY, ข้อความ UserStatus); ตกลง ตกลง 0 แถวได้รับผลกระทบ (1.07 วินาที)
แทรกระเบียนบางส่วนในตารางโดยใช้คำสั่ง insert -
mysql> แทรกลงในค่า DemoTable677(UserStatus) ('BUSY'); เคียวรีตกลง 1 แถวได้รับผลกระทบ (0.23 วินาที)mysql> แทรกลงในค่า DemoTable677 (UserStatus) ('AT WORK'); เคียวรีตกลง ได้รับผลกระทบ 1 แถว (0.17 วินาที) mysql> แทรกลงในค่า DemoTable677 (UserStatus) ('ออฟไลน์'); แบบสอบถามตกลง 1 แถวได้รับผลกระทบ (0.18 วินาที) mysql> แทรกลงในค่า DemoTable677 (UserStatus) ('BLOCKED'); แบบสอบถามตกลง ได้รับผลกระทบ 1 แถว (0.17 วินาที)
แสดงระเบียนทั้งหมดจากตารางโดยใช้คำสั่ง select -
mysql> เลือก *จาก DemoTable677;
สิ่งนี้จะสร้างผลลัพธ์ต่อไปนี้ -
<ก่อนหน้า>+---------+-----------+| รหัสผู้ใช้ | UserStatus |+---------+-----------+| 1 | ไม่ว่าง || 2 | ที่ทำงาน || 3 | ออฟไลน์ || 4 | บล็อก |+-------+-----------+4 แถวในชุด (0.00 วินาที)ต่อไปนี้เป็นแบบสอบถามเพื่อ ORDER BY ด้วยค่าฟิลด์ที่กำหนดเอง -
mysql> เลือก *จาก DemoTable677 ORDER BY FIND_IN_SET(UserStatus, 'BLOCKED, AT WORK, OFFLINE, BUSY');
สิ่งนี้จะสร้างผลลัพธ์ต่อไปนี้ -
<ก่อนหน้า>+---------+-----------+| รหัสผู้ใช้ | UserStatus |+---------+-----------+| 4 | ถูกบล็อก || 2 | ที่ทำงาน || 3 | ออฟไลน์ || 1 | BUSY |+---------+-----------+4 แถวในชุด (0.03 วินาที)