0
我有一個問題,我不知道該怎麼稱呼它。也許我只是不使用正確的命名,因此我找不到答案。MySQL ORDER BY不同where子句中的多個元素
但情況是這樣的。 我有similair數據的數據庫表來執行以下操作:
- booking_id(INT)
- booking_start(YMD)
- booking_starttime(H:ⅰ)
- booking_hotelstart(YMD)
- booking_hotelstarttime (Ymd)
- booking_hotelend(Ymd)
- booking_hotelendtime(H:i)
- booking_end(年月日)
- booking_endtime(H:1)
- booking_confirmed(布爾)
現在我想提出一個查詢,確實這個問題: (無效的查詢只是爲了證明什麼我想)
SELECT `booking_id` FROM `system_bookings` WHERE (
(`booking_start`='2014-10-20' ORDER BY `booking_starttime` ASC)
OR
(`booking_hotelstart`='2014-10-20' ORDER BY `booking_hotelstarttime` ASC)
OR
(`booking_hotelend`='2014-10-20' ORDER BY `booking_endtime` ASC)
OR
(`booking_end`='2014-10-20' ORDER BY `booking_endtime` ASC)
)
AND
`booking_confirmed` = TRUE LIMIT 0, 100
所以基本上一個ORDER BY該條款。但如何做到這一點?我不知道如何正確搜索這個。因此,我希望有人能夠向我展示我應該前進的方向。除此之外。我想知道這是如何被調用的。對於下一個搜索。
Thanx提前!!!
編輯:
我創造了一些樣本數據的要求:
CREATE TABLE IF NOT EXISTS `system_bookings` (
`booking_id` int(6) NOT NULL AUTO_INCREMENT,
`booking_start` date NOT NULL,
`booking_starttime` varchar(5) NOT NULL,
`booking_hotelstart` date NOT NULL,
`booking_hotelstarttime` varchar(5) NOT NULL,
`booking_hotelend` date NOT NULL,
`booking_hotelendtime` varchar(5) NOT NULL,
`booking_end` date NOT NULL,
`booking_endtime` varchar(5) NOT NULL,
`booking_confirmed` tinyint(1) NOT NULL,
PRIMARY KEY (`booking_id`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1 AUTO_INCREMENT=6 ;
INSERT INTO `system_bookings` (`booking_id`, `booking_start`, `booking_starttime`, `booking_hotelstart`, `booking_hotelstarttime`, `booking_hotelend`, `booking_hotelendtime`, `booking_end`, `booking_endtime`, `booking_confirmed`) VALUES
(1, '2014-10-09', '21:19', '2014-10-08', '21:19', '2014-10-23', '08:00', '2014-10-23', '22:00', 1),
(2, '2014-10-11', '16:00', '2014-10-27', '12:15', '2014-10-28', '17:45', '2014-10-28', '17:45', 1),
(3, '2014-10-10', '20:30', '2014-10-10', '20:30', '2014-10-11', '08:00', '2014-10-20', '14:00', 1),
(4, '2014-10-12', '20:00', '2014-10-12', '20:00', '2014-10-13', '05:00', '2014-10-29', '22:00', 0),
(5, '2014-10-22', '15:00', '2014-10-22', '20:30', '2014-10-23', '04:15', '2014-10-31', '12:00', 1);
你究竟想要達到什麼目的? – 2014-10-08 19:00:35
我想獲得與查詢相匹配的預訂,但也按單個條款排序 – 2014-10-08 19:01:49
您試圖從該查詢中實現的內容是不可能的,直到您使用子查詢時纔可能使用多個順序。請張貼一些樣本數據和期望的結果。 – 2014-10-08 19:03:38