在 mysql 联合查询中插入序列号
Insert serial no in mysql union query
我正在 mysql 使用 union as
进行查询
(Select id,c1,c2,c3 from table where c1=x1 and c2=x2 ) union <<---block 1
(Select id,c1,c2,c3 from table where c1=x1 and c2=x2 ) union <<---block 2
...
(Select id,c1,c2,c3 from table where c1=x1 and c2=x2 ) union <<---block mth
哪个returnsresult
id|c1|c2|c3
------------
1 |..|..|..
2 |..|..|..
3 |..|..|..
.. .. .. ..
.. .. .. ..
nth.. .. ..
我想要 table 添加一个 no 显示结果是从 联合块
中获得的
id|c1|c2|c3|blk
---------------
1 |..|..|..|1
2 |..|..|..|1
3 |..|..|..|2
.. .. .. ..|3
.. .. .. ..|3
nth.. .. ..|3
使用 blk 编号向每个查询再添加 1 列:
(Select id,c1,c2,c3, 1 blk from table where c1=x1 and c2=x2 )
(Select id,c1,c2,c3, 2 from table where c1=x1 and c2=x2 )
...
(Select id,c1,c2,c3, <n> from table where c1=x1 and c2=x2 )
只需在select子句中添加一个常量即可:
SELECT id, c1, c2, c3, 1 AS blk FROM table WHERE c1 = x1 AND c2 = x2 UNION ALL -- block 1
SELECT id, c1, c2, c3, 2 FROM table WHERE c1 = x1 AND c2 = x2 UNION ALL -- block 2
...
SELECT id, c1, c2, c3, m FROM table WHERE c1 = x1 AND c2 = x2 -- block m
我正在 mysql 使用 union as
进行查询(Select id,c1,c2,c3 from table where c1=x1 and c2=x2 ) union <<---block 1
(Select id,c1,c2,c3 from table where c1=x1 and c2=x2 ) union <<---block 2
...
(Select id,c1,c2,c3 from table where c1=x1 and c2=x2 ) union <<---block mth
哪个returnsresult
id|c1|c2|c3
------------
1 |..|..|..
2 |..|..|..
3 |..|..|..
.. .. .. ..
.. .. .. ..
nth.. .. ..
我想要 table 添加一个 no 显示结果是从 联合块
中获得的id|c1|c2|c3|blk
---------------
1 |..|..|..|1
2 |..|..|..|1
3 |..|..|..|2
.. .. .. ..|3
.. .. .. ..|3
nth.. .. ..|3
使用 blk 编号向每个查询再添加 1 列:
(Select id,c1,c2,c3, 1 blk from table where c1=x1 and c2=x2 )
(Select id,c1,c2,c3, 2 from table where c1=x1 and c2=x2 )
...
(Select id,c1,c2,c3, <n> from table where c1=x1 and c2=x2 )
只需在select子句中添加一个常量即可:
SELECT id, c1, c2, c3, 1 AS blk FROM table WHERE c1 = x1 AND c2 = x2 UNION ALL -- block 1
SELECT id, c1, c2, c3, 2 FROM table WHERE c1 = x1 AND c2 = x2 UNION ALL -- block 2
...
SELECT id, c1, c2, c3, m FROM table WHERE c1 = x1 AND c2 = x2 -- block m