,所以我不能找到一個回答這個問題,我有以下查詢:亞目,其中字段0
SELECT *
FROM bans
WHERE
removed = 0
AND
(
(`time` + `length` - UNIX_TIMESTAMP()) > 0
OR
length = 0
)
ORDER BY length = 0,(`time` + `length` - UNIX_TIMESTAMP())
它得到他們根據從表和訂單的所有禁令時,他們會向被解除。但長度爲0的禁令是永久禁止的,它們應該位於列表的最底部。哪些已經有效。但我希望那些永久禁令被banid命令降序。目前它們並不是默認的順序升序。
如果我把ASC在它裏面空穴順序擰
數據庫:
CREATE TABLE IF NOT EXISTS `rp_bans` (
`banid` int(11) NOT NULL AUTO_INCREMENT,
`steamid` text NOT NULL,
`name` text NOT NULL,
`adminid` text NOT NULL,
`aname` text NOT NULL,
`reason` text NOT NULL,
`time` int(11) NOT NULL,
`length` int(11) NOT NULL,
`removed` tinyint(1) NOT NULL,
PRIMARY KEY (`banid`)
)
示例數據:
id time length current time timeleft
1 1365410228 0 1365411228 -1000
2 1365410229 3600 1365411228 2601
3 1365410230 0 1365411228 -998
4 1365410231 84000 1365411228 83003
5 1365410232 3600 1365411228 2604
6 1365410233 0 1365411228 -995
7 1365410234 800000 1365411228 799006
預期結果:
id time length current time timeleft
2 1365410229 3600 1365411228 2601
5 1365410232 3600 1365411228 2604
4 1365410231 84000 1365411228 83003
7 1365410234 800000 1365411228 799006
6 1365410233 0 1365411228 -995
3 1365410230 0 1365411228 -998
1 1365410228 0 1365411228 -1000
所以如果長度不是0則按時間遞增順序(從時間+長度 - 當前時間計算)。當長度爲0,它需要通過ID下降的條目後面訂購,其中長度不爲0
我們看一些樣本數據和期望的結果。 – Kermit 2013-04-05 14:16:01
你的意思是*哪裏長度= 0下降*?降序在哪個屬性? – Oswald 2013-04-05 14:18:21
希望這個清除它,長度= 0的所有行都需要使用banid或time來命令DESC(會給出相同的效果),並且它們需要在其他長度<> 0 – 2013-04-05 14:23:11