例如,假设我正在创建一个存储发货站点促销代码的表格。我想让表格与代码的验证器匹配促销代码,例如
PROMO1: Order must have 3 items
PROMO2: Order subtotal must be greater than $50
我想将查询和/或例程存储在表格的列中,并且能够使用内容来验证,
SELECT * FROM Orders
WHERE Promo.ID = 2 AND Promo.Validation = True
或者那种效果。有什么想法吗?
答案 0 :(得分:1)
我不会将查询保存在数据库中,有更好的可能性。
您必须决定哪种最适合您的需求(根据您的问题,我不清楚)。你可以使用
或
或
答案 1 :(得分:1)
可能有更好的方法来解决问题,但问题的答案是编写返回所需结果的存储过程。在我工作的地方(我讨厌这个设计),它们实际上存储了应用程序在存储过程中使用的所有查询和dml。
您还可以使用动态sql动态构建查询。对于MySql,请参阅下面的帖子,这可能对您有所帮助。
How To have Dynamic SQL in MySQL Stored Procedure
否则,您还可以在数据库中以字符串格式存储查询,并使用EXECUTE语句检索它们并执行它们,例如该帖子指出。
我个人远离这样的设计。在XML中存储查询并不是一个糟糕的选择,并且可以将您的应用程序编写为可扩展并可从XML进行配置,因此您无需更改代码即可添加新的验证逻辑,而只需在XML中进行配置即可。