2015-11-03 84 views
0
SELECT *, REPLACE(number_option, 'Issue ', '') AS new_number_option FROM 
jgl_article WHERE status = 1 AND topic = 'Current Issues' ORDER BY id ASC 

new_number_option列返回:MySQL的 - 從虛擬列中獲取最高價值

1 

1 

1 

2 

2 

3 

3 

我想從new_number_option列的最高值。這裏3是最高值。所以,我想獲得包含最高價值的記錄。我在上面的查詢中嘗試了HAVING MAX(new_number_option)。但是,它不會起作用。

回答

2

嘗試CAST因爲你的列類型是string

CAST(new_number_option as SIGNED) 

使用

MAX(CAST(REPLACE(number_option, 'Issue ', '') AS UNSIGNED)) 
+0

它ONL返回第一行年。它不會返回包含最高值 – Karuppiah

+0

SELECT *行, MAX(CAST(REPLACE(number_option, '問題', '')爲unsigned))AS new_number_option FROM jgl_article WHERE狀態= 1 AND主題=「當前問題' –

+0

試試這個查詢@Beginner –

1
SELECT JA.* 
    FROM 
jgl_article JA INNER JOIN 
    (SELECT MAX(CAST(REPLACE(number_option, 'Issue ', '') AS UNSIGNED)) AS MAX_number_option FROM 
     jgl_article) T 
       ON CAST(TRIM(JA.number_option) as UNSIGNED) = T.MAX_number_option 
WHERE JA.status = 1 AND JA.topic = 'Current Issues' 

這將工作

希望這有助於..

+0

SQL語法錯誤 – Karuppiah

+0

[; S狀態錯誤 –

+0

再試一次我錯過了昏迷 –