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