嘿,我已經環顧四周,但沒有解決這個問題的運氣。動態SQL排序幫助
我有一個帖子/評論數據庫,我無法正確地訂購。
我需要它主要通過它的ID進行排序,但是如果它的parent_id不等於它的id,它將放在它的父節點之後,並且這些子節點也會按id排序。
這是我目前的數據庫。
CREATE TABLE `questions` (
`id` int(10) NOT NULL AUTO_INCREMENT,
`parent_id` int(10) NOT NULL,
`entry_type` varchar(8) NOT NULL,
`entry_content` varchar(1024) NOT NULL,
`entry_poster_id` varchar(10) NOT NULL,
`entry_status` varchar(1) NOT NULL,
`entry_score` varchar(10) NOT NULL,
`time_posted` varchar(10) NOT NULL,
PRIMARY KEY (`id`),
KEY `id` (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1 AUTO_INCREMENT=7 ;
--
-- Dumping data for table `questions`
--
INSERT INTO `questions` VALUES(1, 1, 'question', 'How do I does SQL?', 'CodyC', '0', '2', '1308641965');
INSERT INTO `questions` VALUES(2, 1, 'answer', 'Easy, you eat cheese!', 'PatrickS', '0', '-4', '1308641965');
INSERT INTO `questions` VALUES(3, 2, 'comment', 'WTF are you on noobass?!', 'FraserK', '0', '100', '1308641965');
INSERT INTO `questions` VALUES(4, 1, 'answer', 'blah', '5', '0', '0', '1308642204');
INSERT INTO `questions` VALUES(5, 4, 'comment', 'blah2', '4', '0', '0', '1308642247');
INSERT INTO `questions` VALUES(6, 2, '2', '3', '3', '3', '3', '3');
和我目前的查詢
SELECT *
FROM questions
WHERE parent_id =1
OR parent_id
IN (
SELECT id
FROM questions
WHERE parent_id =1
AND parent_id != id
)
如何訂購,使訂單ID到每個對象都其父後,其中ID = PARENT_ID意味着是一個基本水平,並沒有父!
在此先感謝。
弗雷澤
你希望爲在這種情況下一個問題(ID = 1)ORDER BY或想顯示的所有問題嗎? –
我需要得到一個具體的問題,所有的答案和評論 – FraserK
請告訴我們你所尋求的ID的順序,所以我們可以測試我們的查詢。 – Bohemian