2013-01-01 38 views
1

我正在使用查詢從價格列中選擇價格而不是美元,然後在if語句後按該別名排序。但通過別名命令不起作用。如果查詢中包含mysql中的別名順序

查詢,我現在用的就是

SELECT 
    *, 
    IF(SUBSTRING(price , '1', '1') = '$', 
     round(replace(price , '$', '')) , 
     price) AS coupon 
FROM ccs_product 
WHERE (product_name LIKE '%JoyLot.com%' 
     OR website_name LIKE '%JoyLot.com%' 
     OR description LIKE '%JoyLot.com%') 
ORDER BY coupon ASC 
LIMIT 0 , 10; 
+0

你得到了什麼錯誤?它應該工作正常,因爲'ORDER BY'子句是在MySQL中的'SELECT'子句之後執行的。 –

+0

其實它並不產生有序的結果,它隨機顯示 –

+0

我從來沒有說過它會產生任何錯誤 –

回答

2

使用此查詢其作品採用圓形的(價格)

SELECT 
     *, 
     IF(SUBSTRING(price , '1', '1') = '$', 
       round(replace(price , '$', '')) , 
       round(price)) AS coupon 
      FROM ccs_product 
     WHERE (product_name LIKE '%JoyLot.com%' 
    OR website_name LIKE '%JoyLot.com%' 
    OR description LIKE '%JoyLot.com%') 
     ORDER BY coupon ASC 
    LIMIT 0 , 10; 
+0

謝謝你manish它真的對我很有用,這是一個很好的回覆,併爲遲到的回覆感到抱歉 –

+0

不要忘記接受答案,點擊旁邊的綠色複選標記。 – Barmar

2

有使用別名做的順序沒有任何問題。勾選此sql fiddle作爲證明