假设我有一个类似的表
a | b | c | d | e | id | user_id |
---------------------------------------------------------------------------------
-2.3213 | 9999232342| 0.2099321 | 0.113399 | -1221 | 1 |43124123321321|
---------------------------------------------------------------------------------
-3.3213 | 2231232342| 0.3099321 | 0.203799 | -1231 | 2 |34224123321321|
---------------------------------------------------------------------------------
-4.3293 | 1111232342| 0.2099321 | 0.203799 | -1241 | 3 |98787612321321|
---------------------------------------------------------------------------------
-1.1133 | 2231232342| 0.1099321 | 0.213399 | -1231 | 4 |76534123321321|
--------------------------------------------------------------------------------
-4.2469 | 2231232342| 0.6099321 | 0.203399 | -1261 | 5 |55542333321321|
---------------------------------------------------------------------------------
-1.1133 | 2231232342| 0.1099321 | 0.103599 | -1271 | 6 |12454123321321|
---------------------------------------------------------------------------------
-3.3213 | 2231232342| 0.5099321 | 0.203599 | -1281 | 7 |23123323321321|
并且每当用户注册时,将插入具有相应值的新行。
---------------------------------------------------------------------------------
-9.1133 | 2231232342| 0.1099321 | 0.103599 | -1181 | 8 |23123323321321|
所以。。我可以使用php来排列行吗?它们先按列"a"排列,然后按列"b"排列,再按列"c"排列,等等,按降序排列?
a | b | c | d | e | id | user_id |
---------------------------------------------------------------------------------
-9.1133 | 2231232342| 0.1099321 | 0.103599 | -1181 | 8 |23123323321321|
---------------------------------------------------------------------------------
-4.3293 | 1111232342| 0.2099321 | 0.203799 | -1241 | 3 |98787612321321|
--------------------------------------------------------------------------------
-4.2469 | 2231232342| 0.6099321 | 0.203399 | -1261 | 5 |55542333321321|
---------------------------------------------------------------------------------
-3.3213 | 2231232342| 0.5099321 | 0.203599 | -1281 | 7 |23123323321321|
---------------------------------------------------------------------------------
-3.3213 | 2231232342| 0.3099321 | 0.203799 | -1231 | 2 |34224123321321|
---------------------------------------------------------------------------------
-2.3213 | 9999232342| 0.2099321 | 0.113399 | -1221 | 1 |43124123321321|
---------------------------------------------------------------------------------
-1.1133 | 2231232342| 0.1099321 | 0.213399 | -1231 | 4 |76534123321321|
---------------------------------------------------------------------------------
-1.1133 | 2231232342| 0.1099321 | 0.103599 | -1271 | 6 |12454123321321|
因此,当我想选择具有最接近值的行时,我可以只选择最接近的行。
我是数据库的新手,如果有人能帮助我,我将不胜感激。谢谢。
要按照您要求的顺序获得结果,可以使用
SELECT * FROM your_table
ORDER BY a ASC, b DESC, c DESC, d DESC, e ASC
请注意,您要求按降序对a进行排序,但您的示例显示了相反的情况,因为a似乎是负数。。。
如果您确实需要降序,即使值为负数,也可以尝试使用ABS
函数。
SELECT * FROM your_table
ORDER BY ABS(a) DESC, b DESC, c DESC, d DESC, ABS(e) DESC