我有以下查询:
SELECT script FROM d_stages WHERE id IN
(SELECT g.stage + :i FROM games g INNER JOIN sessions s ON
g.expired = 0 AND s.user = g.user AND s.token = :token)
- Inner SELECT 通过给定的令牌在“会话”表中查找用户 ID,然后为该用户查找未过期的游戏。
- 它返回被修改的游戏阶段(增加、减少或保持不变,取决于 :i 值)。
- 外部 SELECT 为从字典中找到的阶段返回一个唯一的脚本。
显然,修改后的阶段编号(g.stage + :i)应该写回数据库,因为游戏已经进化了。我可以替换SELECT script
为SELECT script, g.stage + :i
,并在另一个 ( UPDATE
) 查询中使用修改后的数字,但也许我可以在单个查询中做同样的事情?
我的 DBMS 是 mySQL 5.5。
问候,