我有一些具有不同类型属性的实体 首先,我的db模式如下:
tbl_attr
attr_id | user_id | value
其中value - 字符串类型,包含INT,DATE和STRING值。
其次,我有一个帮助我获取属性的功能
FUNCTION get_attr(id int, user_id int)
RETURNS text CHARSET utf8
BEGIN
RETURN (SELECT tbl_attr.value FROM tst WHERE tbl_attr.user_id = user_id and tbl_attr.attr_id = id);
END
如此简单的聚合查询如下所示:
Select sum(get_attr(2, 2)), sum(get_attr(3, 2)) from tst where get_attr(2, 2)
Order by get_attr(2, 2) desc
这适合我的情况吗?
UPD:此代码不起作用,因为我应该将CAST添加到get_attr函数以将字符串转换为int或date。这段代码只是为了解释我的想法应该如何运作