有没有更好的方法来编写以下SQL?

时间:2012-07-30 18:19:31

标签: mysql sql

有没有更简洁的方法在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
)

1 个答案:

答案 0 :(得分:0)

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

你需要的只是

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

where语句包含您所做的所有工会。

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