2012-07-19 54 views
1

我有這樣的選擇:按字段不工作 - 錯誤信息

SELECT pts_name 
FROM products_tecspecs 
WHERE pts_id IN (5275, 21, 5276, 5277, 
        5278, 49, 5279) 
ORDER BY FIELD (pts_id, 5275, 21, 5276, 5277, 5278, 49, 5279) 

我想要得到的結果,並責令我想要的方式。我發現this答案,但得到這個錯誤:#1305 - 功能database_name.FIELD不存在

我想獲得具體結果與IN(這是工作),但整理我想要的方式。

幫助你被折衷。

回答

7

刪除函數和括號之間的空格:FIELD (
MySQL解析器不喜歡那裏的空格。用途:

FIELD(pts_id, ...) 
+0

耶穌基督訂購!有時很難成爲新手。非常感謝! – JGSilva 2012-07-19 12:28:31

2

你也可以嘗試通過子查詢記錄客戶訂單

SELECT pts_name 
FROM (SELECT pts_name, 
      CASE pts_id 
       WHEN 5275 THEN 1 
       WHEN 21 THEN 2 
       WHEN 5276 THEN 3 
       WHEN 5277 THEN 4 
       WHEN 5278 THEN 5 
       WHEN 49 THEN 6 
       WHEN 5279 THEN 7 
      END AS sort_order 
     FROM products_tecspecs 
     WHERE pts_id IN (5275, 21, 5276, 5277, 5278, 49, 5279) 
    ) a 
ORDER BY a.sort_order ASC ; 
+0

學習新東西總是很好!也是! – JGSilva 2012-07-19 12:37:24