【发布时间】:2013-06-03 04:51:05
【问题描述】:
我正在构建一个证券交易所模拟游戏。我有一个名为“Market_data”的表,在游戏中玩家模拟特定日期,并允许使用 SQL 查询来检索历史数据并计划他们的行动过程。我的困难是我需要根据他们正在播放的当前日期限制他们可以访问的行,这样他们就看不到日期大于当前日期的行。
例如:一个用户正在运行游戏,并且当前是 2010 年,如果他执行像 "SELECT * FROM market_data" 这样的简单选择,我不希望他看到日期 > 'x-x-2010' 的行
我知道的唯一解决方案是解析用户的 SQL 并添加 WHERE 子句以删除较新的日期,但这似乎很耗时且容易出错,我不确定是否有更好的选择。任何关于如何做到这一点的想法都将受到感谢。
【问题讨论】:
-
抱歉,x-x-2010 是什么意思?如果是 2010-06-01,这里只能看到日期
-
你试过什么?听起来您需要让系统验证 SQL 查询并附加/修改 where 子句。如果有的话,您可能需要构建一个像 SQL select 这样的向导。