2012-01-03 144 views
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的變化而改變的查詢:

  1. 「LIMIT 5」 - > 「LIMIT 6」
  2. 中刪除列從查詢 「kontostand」
  3. 刪除「WHERE KONTO ='1'「

結果將按行從」id = 8「開始降序排列。

這裏有什麼問題?

+0

爲此,我得到預期的使用您的代碼在5.5.16結果和查詢 – gbn 2012-01-03 13:58:39

+0

請問DB /表/列有哪些歸類? – GordonM 2012-01-03 13:59:43

+0

@GordonM:這是排序在一個INT列,這是獨立的排序 – gbn 2012-01-03 14:07:48

回答