2016-06-22 32 views
0

也許有人能告訴我,如何訂購MySQL的輸出在這種特定情況下:MySQL的 - 按特定的記錄導致

我的表是這樣的:

| id | Value1 | Value2 | ...More values that doesn`t matter in this example 
^-----^--------^--------^ 
| 1 | 1 | X | 
| 2 | 2 | X | 
| 3 | 3 | 2 | 
| 4 | 1 | X | 
| 5 | 2 | X | 
| 6 | 3 | 3 | 
| 7 | 1 | X | 
| 8 | 2 | X | 
| 9 | 3 | 1 | 

我想從這個值表,並且我想按Value2對它們進行排序,但只在那裏,其中Value1是3(X值無關緊要)。

這樣做的最好方法是什麼?性能好嗎?

在此先感謝!

+1

你想什麼時候發生的事情要做'value1'不等於3? –

+0

我不夠精確:比方說,我想要得到只是id鍵,但從整個表中,並訂購那些Value2 Value = 3的鍵。所以我的期望輸出將如下所示:(9,3,6,1,2,4,5,7,8),我只關心(9,3,6)的順序 - 我需要其餘的,但是以任何順序。 – Zorann

回答

1

嗯,你想whereorder by

select t.* 
from t 
where value1 = 3 
order by value2; 

編輯:基於註釋

select t.* 
from t 
order by (value1 = 3) desc, -- put value 3 first 
     value2 
0
SELECT * FROM TABLE WHERE Value1=3 ORDER BY Value2 
+1

簡單而好,但我需要選擇所有行,不僅僅是那些Value1 = 3的行 – Zorann

0

嘗試用這個請:

SELECT * FROM TABLE WHERE Value1=3 ORDER BY Value2 UNION SELECT * FROM TABLE WHERE Value1!=3 
相關問題