可以实现的,
下面给出示例.
测试环境 MySQL 5.0.15
-- 创建测试环境
CREATE TABLE `tA` (
`id` int(10) unsigned NOT NULL default '0',
`content` varchar(255) NOT NULL default ''
) ENGINE=MyISAM;INSERT INTO `tA` VALUES (1, '1,1');
INSERT INTO `tA` VALUES (1, '1,2');
INSERT INTO `tA` VALUES (1, '1,3');
INSERT INTO `tA` VALUES (1, '1,4');
INSERT INTO `tA` VALUES (2, '2,1');
INSERT INTO `tA` VALUES (2, '2,2');
INSERT INTO `tA` VALUES (2, '2,3');
INSERT INTO `tA` VALUES (2, '2,4');
INSERT INTO `tA` VALUES (3, '3,1');
INSERT INTO `tA` VALUES (3, '3,2');
INSERT INTO `tA` VALUES (3, '3,3');
INSERT INTO `tA` VALUES (4, '4,1');
INSERT INTO `tA` VALUES (4, '4,2');
INSERT INTO `tA` VALUES (4, '4,3');
SELECT tC.`Id`, tC.`content`
FROM
(
SELECT
@Id := CASE WHEN (@GroupId <> `Id`) THEN 1 WHEN ((@GroupId = `Id`) /*&& (@Id < 3)*/) THEN (@Id + 1) ELSE 0 END `RId`
, (@GroupId := `Id`)
, `tA`.*
FROM
(SELECT * FROM `tA` ORDER BY `Id`, RAND()) `tA`
,(SELECT @Id := 0, @GroupId := -1) tB
) `tC`
WHERE tC.`RId` < 3;
-- 删除测试环境
DROP TABLE `tA`;
下面给出示例.
测试环境 MySQL 5.0.15
-- 创建测试环境
CREATE TABLE `tA` (
`id` int(10) unsigned NOT NULL default '0',
`content` varchar(255) NOT NULL default ''
) ENGINE=MyISAM;INSERT INTO `tA` VALUES (1, '1,1');
INSERT INTO `tA` VALUES (1, '1,2');
INSERT INTO `tA` VALUES (1, '1,3');
INSERT INTO `tA` VALUES (1, '1,4');
INSERT INTO `tA` VALUES (2, '2,1');
INSERT INTO `tA` VALUES (2, '2,2');
INSERT INTO `tA` VALUES (2, '2,3');
INSERT INTO `tA` VALUES (2, '2,4');
INSERT INTO `tA` VALUES (3, '3,1');
INSERT INTO `tA` VALUES (3, '3,2');
INSERT INTO `tA` VALUES (3, '3,3');
INSERT INTO `tA` VALUES (4, '4,1');
INSERT INTO `tA` VALUES (4, '4,2');
INSERT INTO `tA` VALUES (4, '4,3');
SELECT tC.`Id`, tC.`content`
FROM
(
SELECT
@Id := CASE WHEN (@GroupId <> `Id`) THEN 1 WHEN ((@GroupId = `Id`) /*&& (@Id < 3)*/) THEN (@Id + 1) ELSE 0 END `RId`
, (@GroupId := `Id`)
, `tA`.*
FROM
(SELECT * FROM `tA` ORDER BY `Id`, RAND()) `tA`
,(SELECT @Id := 0, @GroupId := -1) tB
) `tC`
WHERE tC.`RId` < 3;
-- 删除测试环境
DROP TABLE `tA`;
解决方案 »
- mysql安装一直出问题啊
- 求 全国地区名+加各地区简介 的数据库.
- 关于sphinx安装配置完不能搜到数据的问题
- 一个Select语句的搜索条件问题
- 请问如下这样的一个SQL语句应该怎么写?
- 关于备份数据库的问题,用的是mysql front这个软件
- 找人安装调试apache和mysql
- 腾讯晕数据库mysql有5.1 和5.5,我该选哪个
- 求助 只有ibdata1文件的情况下,如何恢复数据
- 创建外键并保存后,外键不出现,反而出现一个索引。。。。尝试了多种代码,其他电脑运行都正常,求解。
- 细分时间单位的sql怎么写?
- csdn高手多多,俺小弟一路从落伍跑为这边求教了。很菜的循环插入的问题,让我万有般无奈。
思路与上面的一样。
就是选项组合成中间结果+------+--------------------+----+---------+
| RId | (@GroupId := `Id`) | id | content |
+------+--------------------+----+---------+
| 1 | 1 | 1 | 1,2 |
| 2 | 1 | 1 | 1,3 |
| 3 | 1 | 1 | 1,2 |
| 4 | 1 | 1 | 1,4 |
| 5 | 1 | 1 | 1,1 |
| 6 | 1 | 1 | 1,1 |
| 7 | 1 | 1 | 1,4 |
| 8 | 1 | 1 | 1,3 |
| 9 | 1 | 1 | 1,4 |
| 10 | 1 | 1 | 1,3 |
| 11 | 1 | 1 | 1,2 |
| 12 | 1 | 1 | 1,1 |
| 1 | 2 | 2 | 2,2 |
| 2 | 2 | 2 | 2,4 |
| 3 | 2 | 2 | 2,2 |
| 4 | 2 | 2 | 2,3 |
| 5 | 2 | 2 | 2,1 |
| 6 | 2 | 2 | 2,3 |
| 7 | 2 | 2 | 2,1 |
| 8 | 2 | 2 | 2,1 |
| 9 | 2 | 2 | 2,2 |
| 10 | 2 | 2 | 2,3 |
| 11 | 2 | 2 | 2,4 |
| 12 | 2 | 2 | 2,4 |
| 1 | 3 | 3 | 3,1 |
| 2 | 3 | 3 | 3,3 |
| 3 | 3 | 3 | 3,1 |
| 4 | 3 | 3 | 3,2 |
| 5 | 3 | 3 | 3,3 |
| 6 | 3 | 3 | 3,2 |
| 7 | 3 | 3 | 3,3 |
| 8 | 3 | 3 | 3,2 |
| 9 | 3 | 3 | 3,1 |
| 1 | 4 | 4 | 4,1 |
| 2 | 4 | 4 | 4,3 |
| 3 | 4 | 4 | 4,3 |
| 4 | 4 | 4 | 4,2 |
| 5 | 4 | 4 | 4,1 |
| 6 | 4 | 4 | 4,1 |
| 7 | 4 | 4 | 4,3 |
| 8 | 4 | 4 | 4,2 |
| 9 | 4 | 4 | 4,2 |
+------+--------------------+----+---------+