http://sqlfiddle.com/#!9/406cb/2समाप्ति समय के आधार पर पंक्तियों मिल
मैं श्रेणी 1, 2, 3 के साथ एक मेज पुस्तक नहीं है, 4.
- श्रेणी 1 - 1 घंटे के लिए रहना होगा
- श्रेणी 2 - होगा 2 घंटे
- श्रेणी 3 के लिए रहने - 4 घंटे
- श्रेणी 4 के लिए रहना होगा - 6 बजे
वांछित परिणाम प्राप्त करने के लिए मैं एक प्रश्न कैसे लिख सकता हूं?
उदाहरण के लिए:
- यदि वर्तमान समय +१४५४४११२४८ तो यह सभी पुस्तकों
- दिखाना चाहिए यदि वर्तमान समय +१४५४४१४८४७ तो यह वर्ग एक घंटे के बाद नहीं दिखाना चाहिए unixtime = +१४५४४११२४८ (समाप्ति के साथ 1 किताबें है)
- यदि वर्तमान समय 1454418448 है तो श्रेणी 1, 2, 3, 4 नीचे 1, 2, 4, 6 घंटे के समाप्त होने के समय के नीचे नहीं दिखाना चाहिए (
unix_time
गतिशील होगा। उदाहरण के लिए मैंने स्थिर मूल्य का उपयोग किया है)।
इतने पर ..
तालिका:
CREATE TABLE `books` (
`id` int(255) NOT NULL AUTO_INCREMENT,
`name` longtext NOT NULL,
`category` varchar(255) NOT NULL,
`unix_time` bigint(20) NOT NULL,
`time_data` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=19 ;
INSERT INTO `books` (`id`, `name`, `category`, `unix_time`, `time_data`) VALUES
(1, 'book1', '1', 1454411248, '2016-02-02 05:37:28'),
(2, 'book2', '2', 1454411248, '2016-02-02 05:37:28'),
(3, 'book3', '3', 1454411248, '2016-02-02 05:37:28'),
(4, 'book4', '4', 1454411248, '2016-02-02 05:37:28'),
(5, 'book5', '1', 1454411248, '2016-02-02 05:37:28'),
(6, 'book6', '2', 1454411248, '2016-02-02 05:37:28'),
(7, 'book7', '3', 1454411248, '2016-02-02 05:37:28'),
(8, 'book8', '4', 1454411248, '2016-02-02 05:37:28'),
(9, 'book9', '1', 1454497648, '2016-02-03 05:37:28'),
(10, 'book10', '2', 1454497648, '2016-02-03 05:37:28'),
(11, 'book11', '1', 1454497648, '2016-02-03 05:37:28'),
(12, 'book12', '2', 1454497648, '2016-02-03 05:37:28'),
(13, 'book13', '3', 1454497648, '2016-02-03 05:37:28'),
(14, 'book14', '4', 1454497648, '2016-02-03 05:37:28'),
(15, 'book15', '1', 1454497648, '2016-02-03 05:37:28'),
(16, 'book16', '2', 1454497648, '2016-02-03 05:37:28'),
(17, 'book17', '3', 1454497648, '2016-02-03 05:37:28'),
(18, 'book18', '4', 1454497648, '2016-02-03 05:37:28');
क्वेरी:
SELECT *,
CASE category
WHEN '1' THEN '1454407648'
WHEN '2' THEN '1454404048'
WHEN '3' THEN '1454396848'
WHEN '4' THEN '1454389648'
END as category
from books
where unix_time >1454411248
@RyanVincent हाय रयान। मैंने sqlfiddle अद्यतन किया है। लेकिन मेरी क्वेरी वास्तव में खराब है। मैं अब एक नेस्टेड क्वेरी आज़माउंगा और फिर से अपडेट करूंगा। – jason
यह cateogory नहीं दिखा रहा है 2,3,4 – jason
@ hjpotter92 – jason