1
我想寫一個SQL查詢,但我不斷收到一個錯誤,我不知道什麼可能是錯誤的。我閱讀手冊併爲其搜索了很多,但我無法完成它的工作。MySQL比較時間戳記給出錯誤
查詢:
SELECT appid
FROM steam_app
ORDER BY last_update, appid
WHERE last_update < '2014-10-16 01:01:01'
這一直給錯誤SQL錯誤1064,SQL語法。 現在我知道錯誤在WHERE行。因爲如果我刪除它,一切都很好。
解決方案:問題是WHERE和ORDER BY的順序。在哪裏應該在ORDER BY之上。
我想要的到底是什麼樣的查詢:
SELECT appid
FROM steam_app
ORDER BY last_update, appid
WHERE last_update < NOW() + INTERVAL 7 DAY
我的數據庫:
CREATE TABLE `steam_app` (
`appid` INT(10) UNSIGNED NOT NULL,
`name` VARCHAR(128) NULL DEFAULT NULL,
`type` VARCHAR(64) NULL DEFAULT NULL,
`header_image` VARCHAR(256) NULL DEFAULT NULL,
`last_update` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
`last_change` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
PRIMARY KEY (`appid`),
INDEX `type` (`type`)
)
COLLATE='utf8_general_ci'
ENGINE=InnoDB;
的樣本數據
INSERT INTO `steam_app` (`appid`, `name`, `type`, `header_image`, `last_update`, `last_change`) VALUES (327400, 'Sid Meier\'s Colonization (Classic)', 'game', 'http://cdn.akamai.steamstatic.com/steam/apps/327400/header.jpg?t=1412883714', '2014-10-16 13:36:37', '2014-10-16 13:36:37');
INSERT INTO `steam_app` (`appid`, `name`, `type`, `header_image`, `last_update`, `last_change`) VALUES (327650, 'May’s Mysteries: The Secret of Dragonville', 'game', 'http://cdn.akamai.steamstatic.com/steam/apps/327650/header.jpg?t=1413366276', '2014-10-16 13:36:37', '2014-10-16 13:36:37');
INSERT INTO `steam_app` (`appid`, `name`, `type`, `header_image`, `last_update`, `last_change`) VALUES (327860, 'Salt', 'game', 'http://cdn.akamai.steamstatic.com/steam/apps/327860/header.jpg?t=1413399075', '2014-10-16 13:31:53', '2014-10-16 13:31:53');
謝謝。問題確實是WHERE和ORDER BY的錯誤順序 – Paul 2014-10-16 12:31:56