作者cleanwind (骨傲风清(挂网))
看板Database
标题Re: [SQL ] 我的 MySQL 6.0.4-alpha 好阿鬼
时间Mon Jul 9 06:30:10 2012
今天又被 MySQL 搞了一次,到最後我终於知道了,
绝对绝对不要使用「保留字」作为栏位名称,
就算会很乖的加上 `` 也一样!
我不知道这是 MySQL 的 Bug 还是怎样,
如果我单纯做 SELECT 是正常的,
SELECT `month` FROM `table`;
但是当我要 WHERE 又要 ORDER BY 时
SELECT `month` WHERE `state`='1' AND `rank`='3' ORDER BY `rank`, `id`
明明该有资料符合的却出不来!
如果只有单纯的 WHERE 或 ORDER BY 又很正常!
更阿鬼的来了,如果我去 JOIN ,例如
SELECT `month` FROM `table` LEFT JOIN `table2`
ON `table2`.`id`=`table`.`table2_id`
WHERE `state`='1' AND `rank`='3' ORDER BY `table`.`rank`, `table`.`id`
又正确地丢出资料了!
绕了这麽一大圈,我只想说,
真的不要用「保留字」做为栏位名称啊啊啊啊!
※ 引述《cleanwind (骨傲风清(挂网))》之铭言:
: `hwlist`
: id info type deadline filename rank hwid
: 1 1 0000-00-00 00:00:00 0 2
: 2 2 0000-00-00 00:00:00 0 2
: 3 3 0000-00-00 00:00:00 0 2
: 4 不要玩我 2010-03-15 00:00:00 0 1
: 5 囧爆了 2010-03-15 00:00:00 1 1
: 如果我下,
: SELECT `id` FROM `hwlist` WHERE `id`=4 OR `id`=5
: 会得到正常的结果
: id
: 4
: 5
: 但是我如果下
: SELECT `info`, `type`, `id` FROM `hwlist` WHERE `id`=4 OR `id`=5 ORDER BY
: `rank`
: 却会得到
: info type id
: 囧爆了 5
: 囧爆了 5
: 诚心请教,是我的脑带有洞,
: 还是 MySQL 6.0.4-alpha 的程式码有 Bug ?
--
请协助连署 Steam 板,不管赞成或反对都很谢谢您!
战略高手 游戏, 数位, 程设
ComGame-Serv 组务 Σ战略高手服务中心
ComGame-New 组务 ◎战略高手群组连署专用看板
864 7/07 cleanwind ˇ [申请新板] Steam
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 120.101.9.24