i need to get the largest number in column "meta_value" while other column equals "utteranceId", and i get wrong value.
i tried to use the max function but i don't get the largest number.
the meta_value column is of type varchar, and there is more records in the table that are text, but the records of meta_key: "utteranceId" are all numbers.
table:
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
the query i use:
SELECT post_id, max(meta_value) FROM wp_postmeta where meta_key = "utteranceId";
result: 168 9
i need to get: 177 10
i
To handle varchar as number:
SELECT MAX(CONVERT(meta_value, SIGNED)) FROM wp_postmeta where meta_key = "utteranceId";
To select the corresponding 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";