Задавайте вопросы, мы ответим
Вы не зашли.
Страниц: 1
Здравствуйте. Вот, бьюсь.
Есть таблица типа
type|text|data (у всех одинаковая (пока)
---------------
1 | qw
2 | as
3 | re
4 | zx
3 | sd
2 | df
1 | fg
2 | gh
Мне нужно из каждого типа (1, 2...) выбрать один произвольный т.е. или (1|qw) или (1|fg).
SELECT text FROM `day` WHERE date = 1130 GROUP BY type
Как допилить запрос, чтоб был рандом? Т.е. типа сперва все перемешиваем, а потом GROUP BY
Неактивен
mysql> create table t_7265(a int, b int); Query OK, 0 rows affected (0.31 sec) mysql> insert into t_7265 values(1,11),(1,111),(2,2),(2,222),(1,1111),(2,2222),(1,1),(2,22); Query OK, 8 rows affected (0.00 sec) Records: 8 Duplicates: 0 Warnings: 0 mysql> SELECT a,b FROM ( SELECT a, b FROM t_7265 ORDER BY RAND()) AS subquery GROUP BY a; +------+------+ | a | b | +------+------+ | 1 | 1 | | 2 | 22 | +------+------+ 2 rows in set (0.00 sec) mysql> SELECT a,b FROM ( SELECT a, b FROM t_7265 ORDER BY RAND()) AS subquery GROUP BY a; +------+------+ | a | b | +------+------+ | 1 | 1111 | | 2 | 2 | +------+------+ 2 rows in set (0.00 sec) mysql> SELECT a,b FROM ( SELECT a, b FROM t_7265 ORDER BY RAND()) AS subquery GROUP BY a; +------+------+ | a | b | +------+------+ | 1 | 1111 | | 2 | 2222 | +------+------+ 2 rows in set (0.00 sec)
Неактивен
MariaDB 5.5 и выше упрощает from-подзапрос:
select `test`.`t_7265`.`a` AS `a`,`test`.`t_7265`.`b` AS `b` from `test`.`t_7265` group by `test`.`t_7265`.`a`
Универсальным решением будет:
Неактивен
Страниц: 1