Computer >> Máy Tính >  >> Lập trình >> MySQL

Làm cách nào để trả về bản ghi từ một bảng gần nhất với giá trị biến do người dùng xác định trong MySQL?

Đầu tiên chúng ta hãy tạo một bảng -

mysql> create table DemoTable
(
   CustomerId int NOT NULL AUTO_INCREMENT PRIMARY KEY,
   ProductAmount int
);
Query OK, 0 rows affected (0.61 sec)

Chèn một số bản ghi vào bảng bằng lệnh chèn -

mysql> insert into DemoTable(ProductAmount) values(5000);
Query OK, 1 row affected (0.13 sec)
mysql> insert into DemoTable(ProductAmount) values(6000);
Query OK, 1 row affected (0.08 sec)
mysql> insert into DemoTable(ProductAmount) values(7000);
Query OK, 1 row affected (0.26 sec)

Hiển thị tất cả các bản ghi từ bảng bằng câu lệnh select -

mysql> select *from DemoTable;

Điều này sẽ tạo ra kết quả sau -

+------------+---------------+
| CustomerId | ProductAmount |
+------------+---------------+
|          1 |          5000 |
|          2 |          6000 |
|          3 |          7000 |
+------------+---------------+
3 rows in set (0.00 sec)

Sau đây là truy vấn để trả về giá trị gần nhất. Ở đây, chúng tôi đã đặt một biến do người dùng xác định với giá trị 6990. Do đó, bây giờ chúng tôi cần tìm nạp bản ghi gần nhất với 6990 -

mysql> set @value=6990;
Query OK, 0 rows affected (0.00 sec)
mysql> select ProductAmount from DemoTable order by ABS(ProductAmount-@value) LIMIT 1;

Điều này sẽ tạo ra kết quả sau -

+---------------+
| ProductAmount |
+---------------+
|          7000 |
+---------------+
1 row in set (0.00 sec)