我正在尝试使用mysql
的最大功能,但如果我尝试从子查询中添加一列,它会返回blob
值,我尝试使用mysql {{1}我也试过workbench
但结果是一样的。
以下是我的SQL查询:
phpmyadmin
这里的值是从一些子查询中获取的。
当我在函数中添加select greatest(pm10index,pm2index,noindex,so2index,o3index,nh3index,coindex)
from table ;
列时会出现问题,如果从函数中删除了此特定列pm10index
,则会正确返回最高值。
以下是pm10index
pm10index
pm10,
(CASE
when pm10 = 0 then 0
when pm10 <=50 then pm10
when pm10 >50 and pm10 <=100 then pm10
when pm10 >100 and pm10 <=250 then 100+(pm10-100)*0.666
when pm10 >250 and pm10 <=350 then 200+(pm10-250)
when pm10 >350 and pm10 <=430 then 300+(pm10-350)*1.25
when pm10 >430 then 400+(pm10-430)*1.25
END) pm10index
定义为pm10
数据类型,而所有其他字段也定义为varchar
如果你能在这里帮助我,那就太好了。提前致谢 。
答案 0 :(得分:1)
以下是pm10index的值... pm10定义为varchar数据类型
您提供的代码中没有varchar(或任何类型的字符串)。即使您确实将数据转换为varchar,您最终也会得到奇怪的结果(尝试select greatest('2','100');
)。
虽然MySQL会尽力比较字符串和数字,但它迟早会破坏。除非您至少拥有一致的数据类型(实际上它应该是正确的数据类型),否则您的代码将无法依赖。