根据函数值将动态字段添加到MySQL表中

时间:2011-01-17 12:20:53

标签: php mysql

Hay,我有一张表有一个'cost_price'字段的产品。当用户看到这个字段时,它已经通过PHP中的一个函数来返回一个新值(基本上增加了20%,然后根据用户的注册级别删除了一定的百分比)。假设这个函数叫做'final_price()'。这将获取并输出一个浮动。

我想预先形成像这样的查询

SELECT * FROM `products` WHERE `member_price` BETWEEN `x` AND `y`

但是'member_price'字段不存在,这将是'final_price'函数的值。所以'cost_price'将通过'final_price'函数运行并放入'member_price'字段。

有办法做到这一点吗?

2 个答案:

答案 0 :(得分:2)

这可以让您了解如何在sql中进行计算:

SELECT * FROM products WHERE 
cost_price * 1.2 *  
(SELECT user_level * $some_coefficient FROM users WHERE user_id = $uid) 
between x and y

答案 1 :(得分:0)

显然,计算后需要应用过滤器,因此您的选项是

  • 在数据库服务器内进行计算
  • 检索所有行,然后在前端计算和过滤。

虽然从技术上讲你可以将计算结果反馈到数据库中并从中进行选择,但我认为这将是一个非常糟糕的解决方案,而且即使提及它我也不得不喋喋不休。