mysql中想获取trader_id最大的那一条记录的价格,这样写不对,看下我错在哪?

想从thinkphp的mysql数据库中获取trader_id最大的那一条记录的价格,这样写不对,看下我错在哪?
$pis['trade_id'] = 'max(trade_id)';
$list = M('Trade')->field('*,price as newprice')->where($pis)->select();

阅读 3.8k
5 个回答

ORDER BY trade_id DESC LIMIT 1

trader_id 倒序排一下 再取第一条数据?

TP不是有提供方法吗?
M('Trade')->where()->max('trade_id');

没有猜错的话 $pis['trade_id'] = 'max(trade_id)';中的'max(trade_id)'被当作字符串执行了,毕竟pdo是预编译的,除非你不用tp封装好的操作,手写sql。这种写法还不支持使用索引。

用getLastSql()把sql语句打印出来,看看就知道了

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题