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

เลือกเรคคอร์ดที่ความต่างสัมบูรณ์ระหว่างสองคอลัมน์มากกว่าค่าที่กำหนด

คิวรี MySQL เลือกแถวที่ความต่างสัมบูรณ์ระหว่างสองคอลัมน์เกินค่าที่กำหนด

ใช้ฟังก์ชัน ABS() เพื่อหาค่าสัมบูรณ์ของความต่างระหว่างสองคอลัมน์ แล้วเปรียบเทียบกับค่าที่กำหนด

SELECT * FROM yourTableName WHERE ABS(yourColumnName1 - yourColumnName2) >= yourCertainNumber;

ตัวอย่างการใช้งาน

สร้างตารางและเพิ่มข้อมูล:

mysql> create table DemoTable (Number1 int, Number2 int);
mysql> insert into DemoTable values(10,20);
mysql> insert into DemoTable values(100,200);
mysql> insert into DemoTable values(400,300);
mysql> insert into DemoTable values(1000,500);

ข้อมูลทั้งหมด:

+---------+---------+
| Number1 | Number2 |
+---------+---------+
| 10      | 20      |
| 100     | 200     |
| 400     | 300     |
| 1000    | 500     |
+---------+---------+

คิวรีเลือกแถวที่ความต่างสัมบูรณ์มากกว่า 100:

mysql> select * from DemoTable where abs(Number1 - Number2) > 100;

ผลลัพธ์ (เฉพาะแถวที่ 4: |1000-500| = 500 > 100):

+---------+---------+
| Number1 | Number2 |
+---------+---------+
| 1000    | 500     |
+---------+---------+

การคำนวณแต่ละแถว:

  • |10-20| = 10 ≯ 100
  • |100-200| = 100 ≯ 100 (ไม่เกิน เพราะใช้ > ไม่ใช่ >=)
  • |400-300| = 100 ≯ 100
  • |1000-500| = 500 > 100 ✓