我想从mysql获得2个字段数据的比率
示例我有这些数据:
width height
1024 | 960
2880 | 1800
1440 | 900
我想得到这些数据的比例(例4:3,16:9等) 所以输出应该是:
width height
4 | 3
8 | 5
8 | 5
任何人都可以帮助我?
答案 0 :(得分:2)
然后问题是将一个分数(witdth / height)减少到最简单的形式,在这种情况下我们可以调用一个函数来给我们这两个数字之间的最大公因子分成:
select width, height, width/gcd(width,height) wratio,
height/gcd(width,height) hratio
from wh
功能gcd:
CREATE FUNCTION gcd(x int, y int) RETURNS int DETERMINISTIC
BEGIN
DECLARE dividend int;
DECLARE divisor int;
DECLARE remainder int;
SET dividend := GREATEST(x, y);
SET remainder := LEAST(x, y);
WHILE remainder != 0 DO
SET divisor = remainder;
SET remainder = MOD(dividend, divisor);
SET dividend = divisor;
END WHILE;
RETURN divisor;
END
注意:我在这里找到了gcd函数:http://thenoyes.com/littlenoise/?p=143
中测试答案 1 :(得分:0)
有效:
SELECT * , (
width / IF(height=0,1,height)
) AS ratio
FROM `my_table`
但要小心:不要divide by 0
此致
的Stefan