表达式为mysql 5.7虚拟列

时间:2015-12-14 10:14:24

标签: mysql expression formula mysql-5.7

mysql表有列order-id,order-item-id。需要为生成的列创建一个表达式(5.7上的新功能)请看一下v虚拟生成列的图像,查看图像以便于理解。表名是每日订单

enter image description here

1 个答案:

答案 0 :(得分:0)

由于generated columns的限制,您无法创建包含子查询的表达式:

  

不允许使用子查询,参数,变量,存储函数和用户定义函数。

由于您希望获取有关多个记录中数据的信息,因此必须使用子查询,这是不允许的。但是,您可以创建视图而不是包含此附加数据的生成列。以下sql语句可以构成此类视图的核心:

select d1.*, d2.NumberOfItems
from dailyorders d1
inner join (select orderid, count(*) as NumberOfItems from dailyorders group by orderid) d2
on d1.orderid=d2.orderid