我需要获取“meta_value”列中的最大数字,而其他列等于“utteranceId”,但我得到了错误的值。
我尝试使用 max 函数,但没有得到最大的数字。
meta_value列是varchar类型,表中较多记录是文本,但是meta_key: "utteranceId"的记录都是数字。
表:
meta_id post_id meta_key meta_value
986 168 utteranceId 1
987 169 utteranceId 2
990 170 utteranceId 3
993 171 utteranceId 4
996 172 utteranceId 5
999 173 utteranceId 6
1002 174 utteranceId 7
1005 175 utteranceId 8
1008 176 utteranceId 9
1011 177 utteranceId 10
我使用的查询:
SELECT post_id, max(meta_value) FROM wp_postmeta where meta_key = "utteranceId";
结果: 168 9
我需要得到: 177 10
我
最佳答案
将 varchar 处理为数字:
SELECT MAX(CONVERT(meta_value, SIGNED)) FROM wp_postmeta where meta_key = "utteranceId";
选择对应的post_id:
SELECT post_id, meta_value FROM wp_postmeta
WHERE CONVERT(meta_value, SIGNED) = (
SELECT MAX(CONVERT(meta_value, SIGNED))
FROM wp_postmeta
WHERE meta_key = "utteranceId" )
AND meta_key = "utteranceId";
关于mysql - 获取mysql varchar列的最大值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57168948/