最新公告
  • 欢迎访问代码工坊,购买产品可享受在线工单服务!
  • mysql查询语句中存在负值比较运算时比对结果出错的解决方法

          小编编写的语句如下:

    select id,qrcodeurl,fmoney2 from {$dbtbpre}qrcode where (userid='$pid' and channel='$channel[$type]' and type=1 and status=1 and fmoney2>='$order_money_2c') or (userid='$pid' and channel='$channel[$type]' and type=1 and status=1 and fmoney1<='$order_money_1c') order by addtime desc

          细看下来没觉得有什么错,但实际输出时,只能输出fmoney2>$order_money_2c、fmoney1>$order_money_1c的结果,而查询语句中条件为fmoney1<=$order_money_1c,打印输出未查看到问题,代码工坊小编初步判断时字符类型的问题。

          查询数据表发现,fmoney1、fmoney2字段存储皆为varchar型,非数字型,导致比对时忽略了负号“-”,将字段类型改为float型,输出结果正常了。

    发表评论