0
我的MySQL服務器(版本:5.0.51a-3ubuntu5.8)我有以下InnoDB表:MySQL中奇怪的排序錯誤?
CREATE TABLE `kontostaende` (
`id` int(11) NOT NULL auto_increment,
`zeit` timestamp NOT NULL default CURRENT_TIMESTAMP,
`kontostand` decimal(8,3) NOT NULL,
`kontostand_zukunft` decimal(8,3) NOT NULL,
`konto` int(11) NOT NULL,
`protokoll` int(11) NOT NULL,
`bemerkung` text NOT NULL,
`veraenderung` decimal(8,3) NOT NULL,
`deleted` tinyint(1) NOT NULL default '0',
`monat_jahr` int(11) NOT NULL,
`offen` tinyint(1) NOT NULL,
PRIMARY KEY (`id`),
KEY `konto` (`konto`),
KEY `protokoll` (`protokoll`),
KEY `monat_jahr` (`monat_jahr`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1 ;
爲樣本數據見http://pastebin.com/8zXh43Zg。
以下查詢產生錯誤(錯誤地排序的結果):
SELECT id,kontostand
FROM `kontostaende`
WHERE konto = '1'
ORDER BY id DESC
LIMIT 5
它將顯示行由ID = 1〜ID = 7排序升序從ID。
如果我通過執行任何的folloginw的變化而改變的查詢:
- 「LIMIT 5」 - > 「LIMIT 6」
- 中刪除列從查詢 「kontostand」
- 刪除「WHERE KONTO ='1'「
結果將按行從」id = 8「開始降序排列。
這裏有什麼問題?
爲此,我得到預期的使用您的代碼在5.5.16結果和查詢 – gbn 2012-01-03 13:58:39
請問DB /表/列有哪些歸類? – GordonM 2012-01-03 13:59:43
@GordonM:這是排序在一個INT列,這是獨立的排序 – gbn 2012-01-03 14:07:48