Mysql查询添加自定义列

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接: https://blog.csdn.net/mrtwenty/article/details/101014153

最近在做的一个项目里面,有两个订单表,一个是线上订单表 online_order,一个是线下订单表 offline_order , 在前端展示的时候,需要将这两个表的数据放到一起作为列表展示出来,所以使用 UNION ALL  来实现。

(SELECT id,real_price,member_id,created_at FROM z_takeout_order WHERE 1 ORDER BY created_at DESC)
UNION ALL 
(SELECT id,real_price,member_id,created_at FROM z_bakery_order WHERE 1 ORDER BY created_at DESC) 
LIMIT 0,3;

效果如下:

但是这样出现了一个问题,获取到的数据,无法区分是线上的订单还是线下的订单,因为两个订单表对应不同的订单商品表,所以就想到了,添加自定义列来实现,于是就变成了这样:

(SELECT id,real_price,member_id,0 as line,created_at FROM z_takeout_order WHERE 1 ORDER BY created_at DESC)
UNION ALL 
(SELECT id,real_price,member_id,1 as line,created_at FROM z_bakery_order WHERE 1 ORDER BY created_at DESC) 
LIMIT 0,3;

效果如下:

这样通过自定义line字段,就能知道行数据属于线上订单还是线下订单的了。

猜你喜欢

转载自blog.csdn.net/mrtwenty/article/details/101014153