2015-02-08 102 views
0

我試圖首先顯示存儲在'zone'字段中的值,因爲每個客戶都有不同的值,我希望他的ZONE中的值先顯示在他的列表中。由於MYSQL ORDER BY CASE存儲值

第一次運行使用VAR後

$data = "SELECT * FROM users; 
$datas = mysqli_query($con,$data) or die(mysqli_error($con)); 
$query = mysqli_fetch_array($datas); 

現在我可以使用{$查詢[「區」]},並在查詢中顯示的第一個查詢

"SELECT * FROM users WHERE ORDER by zone CASE zone WHEN '{$query['zone']}' THEN 0 ELSE 2'"; 

林沒有得到預期的結果,有什麼建議?由於

+0

您在'WHERE'之後錯過了條件。 – Barmar 2015-02-08 22:50:26

+0

您能提供測試數據和期望的結果嗎? – 2015-02-08 22:51:26

回答

0

我想你想是這樣的:

ORDER by (zone = '{$query['zone']}') desc, 
     zone 

這假定表達'{$query['zone']}'是要優先考慮的區域。其區域匹配的用戶將首先出現。

+0

什麼是z? ? – 2015-02-08 23:22:57

+1

@GuchoCa。 。 。這應該是'區域'。 – 2015-02-09 21:51:58