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

ฉันจะคืนบันทึกจากตารางที่ใกล้กับค่าตัวแปรที่ผู้ใช้กำหนดเองใน MySQL มากที่สุดได้อย่างไร


ให้เราสร้างตารางก่อน -

mysql> สร้างตาราง DemoTable ( CustomerId int ไม่ใช่ NULL AUTO_INCREMENT PRIMARY KEY, ProductAmount int); สืบค้นตกลง 0 แถวได้รับผลกระทบ (0.61 วินาที)

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

mysql> แทรกลงในค่า DemoTable(ProductAmount) (5000);Query OK, 1 แถวได้รับผลกระทบ (0.13 วินาที)mysql> แทรกลงใน DemoTable(ProductAmount) values(6000);Query OK, 1 แถวได้รับผลกระทบ (0.08 วินาที)mysql> แทรกลงในค่า DemoTable(ProductAmount) (7000); แบบสอบถามตกลง ได้รับผลกระทบ 1 แถว (0.26 วินาที)

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

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

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

<ก่อนหน้า>+------------+--------------+| รหัสลูกค้า | ProductAmount |+------------+--------------+| 1 | 5000 || 2 | 6000 || 3 | 7000 |+------------+--------------+3 แถวในชุด (0.00 วินาที)

ต่อไปนี้เป็นแบบสอบถามเพื่อส่งกลับค่าที่ใกล้ที่สุด ที่นี่ เราได้ตั้งค่าตัวแปรที่ผู้ใช้กำหนดด้วยค่า 6990 ดังนั้น ตอนนี้ เราจำเป็นต้องดึงข้อมูลระเบียนที่ใกล้เคียงที่สุดกับ 6990 -

mysql> set @value=6990;Query OK, 0 แถวได้รับผลกระทบ (0.00 วินาที)mysql> เลือก ProductAmount จากคำสั่ง DemoTable โดย ABS(ProductAmount-@value) LIMIT 1;

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

<ก่อนหน้า>+--------------+| ProductAmount |+--------------+| 7000 |+---------------------+1 แถวในชุด (0.00 วินาที)