有没有更简洁的方法在MySQL中编写以下代码,而不仅仅是在编程语言中使用循环? table_vw有许多行和几列,而sth列的值介于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
)
答案 0 :(得分:0)
如果我正确理解你的问题那么你就非常接近。
你需要的只是
Select *
From table_vw
Where sth <= 7 AND sth >= 0
Limit 12;
where语句包含您所做的所有工会。
如果你试图在每个专栏中获得有限的12个结果,那么你所拥有的可能是完成这一壮举的唯一方法。