0

有没有更简洁的方法在 MySQL 中编写以下代码,而不仅仅是在编程语言中使用循环?table_vw 有很多行和几列,第 s 列的值在 0 到 7 之间

table_vw

sth sth_else sth_else ...
7      
.
.
6
.
.
5
.
.
4
.
.
3
.
.
2
.
.
1
.
.
0
.
.


(
SELECT *
FROM table_vw
WHERE sth = 7
LIMIT 12
)
UNION
(
SELECT *
FROM table_vw
WHERE sth = 6
LIMIT 12
)
UNION
(
SELECT *
FROM table_vw
WHERE sth = 5
LIMIT 12
)
UNION
(
SELECT *
FROM table_vw
WHERE sth = 4
LIMIT 12
)
UNION
(
SELECT *
FROM table_vw
WHERE sth = 3
LIMIT 12
)
UNION
(
SELECT *
FROM table_vw
WHERE sth = 2
LIMIT 12
)
UNION
(
SELECT *
FROM table_vw
WHERE sth = 1
LIMIT 12
)
UNION
(
SELECT *
FROM table_vw
WHERE sth = 0
LIMIT 12
)
4

1 回答 1

0

如果我正确理解您的问题,那么您非常接近。

所有你需要的是

Select * 
From table_vw
Where sth <= 7 AND sth >= 0
Limit 12;

where 语句包含您创建的所有联合。

如果您试图在每列中获得有限的 12 个结果,那么您所拥有的可能是完成这一壮举的唯一方法。

于 2012-07-30T18:24:55.610 回答