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'

这会起作用

希望这对您有所帮助..