我有多个列,其中包含一项运动名称和一个FLOAT值,该值作为一个人喜欢这项运动的百分比。
例如,
表:喜欢
Field A: Soccer (94.27 %)
Field B: Football (64.21 %)
Field C: Baseball (1.52 %)
我想在字段中搜索最高百分比,然后返回最喜欢的运动的名称。在这种情况下,它将返回足球'
我有以下MySQL脚本检索最高百分比。
-- Get favorite sport (soccer, 94.2716%)
SELECT GREATEST(likes_soccer, likes_football, likes_baseball, likes_basketball, likes_gymnastics,
likes_volleyball, likes_running, likes_swimming, likes_karate, likes_biking, likes_wrestling, likes_golf) AS FAVORITE_SPORT
FROM likes l
WHERE l.child_id = 32;
但是,这并不是我想要的。但它输出足球的比例为94.27%,这是最高的百分比。但是,我希望这可以返回足球'以及其他任何体育项目的字符串表示。我怎么能做到这一点?
答案 0 :(得分:0)
以下解决了这个问题:
SELECT @var_max_val:= GREATEST(col1, col2, col3, ...) AS max_value,
CASE @var_max_val WHEN col1 THEN 'col1'
WHEN col2 THEN 'col2'
...
END AS max_value_column_name
FROM table_name
WHERE ...