Здравствуйте. Есть таблица `values`
CREATE TABLE IF NOT EXISTS `values` (
`id` int(11) unsigned NOT NULL AUTO_INCREMENT,
`sel_id` varchar(10) NOT NULL,
`value` int(11),
PRIMARY KEY (`id`)
);
INSERT INTO `values` (`sel_id`, `value`) VALUES
('one', '2'),
('three', '1'),
('two', '3'),
('one', '3'),
('one', '1'),
('two', '1'),
('two', '3'),
('three', '3'),
('two', '3'),
('two', '6'),
('two', '0');
Задача заключается в том, чтобы получить минимальные и максимальные значения `value` строк, у которых поле `sel_id` = 'one' и 'two'.
Пробовал реализовать используя переменные
SET @m_1:='', @m_2:='';
SELECT MIN(@m_1), MAX(@m_1), MIN(@m_2), MAX(@m_2)
FROM `values`
WHERE
(`sel_id`='one' AND @m_1:=`value`)
OR (`sel_id`='two' AND @m_2:=`value`)
почему-то работает не правильно (не отображает @m_2 минимальное).
Помогите пожалуйста с решением такрй задачи
Отредактированно wrode_coder (23.02.2017 00:55:15)