簡體   English   中英

根據函數值向MySQL表添加動態字段

[英]Add a dynamic field to a MySQL table based on a functions value

干草,我有一張桌子,上面有一個“ 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”字段中。

有沒有辦法做到這一點?

這可以使您了解如何在sql中進行計算:

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

顯然,在計算之后需要應用過濾器,因此您的選擇是

  • 在數據庫服務器內部進行計算
  • 檢索所有行,然后在前端進行計算和過濾。

從技術上講,您可以將計算結果反饋到數據庫中並從數據庫中進行選擇,但我認為這將是一個非常糟糕的解決方案,即使提到它,我也不得不log之以鼻。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM