0

クエリを実行しようとしていますが、ストアド プロシージャを使用せずに機能させる方法がわかりませんが、使用しているプログラミング言語の制限により、その mysql プラットフォームはストアド プロシージャ/関数を受け入れません。

コードは次のとおりです。

select
    (myrpg_faction_info.funds) as bank,
    (
        myrpg_faction_info.paycheckrate +
        myrpg_faction_ranks.paycheckrate +
        sum(myrpg_faction_flags.paycheckrate)
    ) as rate

from 
    myrpg_faction_info
inner join
    myrpg_faction_ranks 
        on 
            myrpg_faction_info.id = myrpg_faction_ranks.fid and 
            myrpg_faction_ranks.rank=1
inner join
    myrpg_faction_flags 
        on 
            myrpg_faction_info.id=myrpg_faction_flags.fid and
            (1 << myrpg_faction_flags.flag) & 1
where myrpg_faction_info.id=1

しかし、率と銀行の変数を (SQL で) 保存し、faction_info テーブルを更新して、faction_info.bank 列から率を取得し、取得した値を選択する必要がありますが、その方法がわかりません。

4

1 に答える 1

0
update mfi
set myrpg_faction_info.funds -
    (
        myrpg_faction_info.paycheckrate +
        myrpg_faction_ranks.paycheckrate +
        sum(myrpg_faction_flags.paycheckrate)
    ) as rate
from 
    myrpg_faction_info mfi
inner join
    myrpg_faction_ranks 
        on 
            myrpg_faction_info.id = myrpg_faction_ranks.fid and 
            myrpg_faction_ranks.rank=1
inner join
    myrpg_faction_flags 
        on 
            myrpg_faction_info.id=myrpg_faction_flags.fid and
            (1 << myrpg_faction_flags.flag) & 1
where myrpg_faction_info.id=1
于 2012-08-18T11:55:38.080 に答える