mysql - 从虚拟列中获取最高值
mysql - get highest value from virtual column
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 列 returns :
1
1
1
2
2
3
3
我想从 new_number_option 列中获取最高值。这里 3 是最高值。所以,我想获得包含最高价值的记录。我在上面的查询中尝试了 HAVING MAX(new_number_option) 。但是,它不会起作用。
尝试 CAST
因为您的列类型是 string
CAST(new_number_option as SIGNED)
使用
MAX( CAST(REPLACE(number_option, 'Issue ', '') AS UNSIGNED) )
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'
这会起作用
希望这对您有所帮助..
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 列 returns :
1
1
1
2
2
3
3
我想从 new_number_option 列中获取最高值。这里 3 是最高值。所以,我想获得包含最高价值的记录。我在上面的查询中尝试了 HAVING MAX(new_number_option) 。但是,它不会起作用。
尝试 CAST
因为您的列类型是 string
CAST(new_number_option as SIGNED)
使用
MAX( CAST(REPLACE(number_option, 'Issue ', '') AS UNSIGNED) )
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'
这会起作用
希望这对您有所帮助..