簡體   English   中英

mysql第二優先級where子句

[英]mysql second priority where clause

因此,例如,我有一個表用戶,其中有一個列“ count”和一個列“ uid”,這是主鍵。

uid | count
1   |  20
2   |  20
3   |  20
4   |  20
4   |  18

我想只選擇計數少於或等於當前行的一行。 例如,我有uid = 2的行。

現在,我想選擇一個計數小於或等於當前計數值為“ 20”的列。 我想選擇最接近它的一排。

現在,我將選擇選擇uid = 3或uid = 4的行。在這種情況下,我將要選擇具有最低uid值的列,以使其大於當前uid值2因此,我希望uid = 3作為結果。

如何將其放在mysql查詢中?

像這樣嗎?

SELECT * FROM users
WHERE count <= 20
ORDER BY count DESC, uid ASC
LIMIT 1

它將對結果進行排序,以便丟棄20以上的所有內容,其余部分以遞減計數的順序獲得,如果存在相同計數的倍數,則較低的用戶ID優先。 LIMIT 1限制查詢僅返回一行。

如果要與現有行進行比較,則最簡單的選擇是:

SELECT * FROM users
WHERE count <= 20
  AND uid != 2
ORDER BY count DESC, uid ASC
LIMIT 1
SELECT * FROM users
WHERE count <= 20
  AND uid IN (3,4)
ORDER BY  uid ASC,count DESC
LIMIT 1

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM