0
ユーザアイテムを連続した昇順で割り当てるが、ユーザの以前に割り当てられたitem_idsに関しては連続したものにしたいアプリケーションがある。CodeIgniter ActiveRecordサブクエリの評価
-- Primary query.
INSERT INTO user_items (user_id, item_id) VALUES (<user_id>, <item_id>); -- There are more fields, but they are not relevant to this question.
-- Desired item_id value subquery.
SELECT MAX(sq.item_id) + 1 from (select item_id from user_items where user_id = {$item_id}) as sq
Iは、(サブクエリを持つ)完全なクエリをテストしており、クエリがデータベースで有効であるが、私はFALSE
に等しい$escape
パラメータで$this->db->set()
方法を使用する場合、ゼロを毎回挿入されます。サブクエリ(文字列として指定されている)は、insert()
メソッドが呼び出される前に評価されているようです。
set()
メソッドに、データベースの評価のために生成されたINSERT
クエリにサブクエリを配置するように指示できますか?
データベースに評価をさせる方法はありますか?私は現在、外部ロックを実装するためにどのくらいの作業が必要なのかは分かりません。 – FluxIX
この場合、ストアドプロシージャを使用して実行できます。しかし、コーディングを行う必要があります。 – Blakdronzer