[英]CodeIgniter ActiveRecord Subquery Evalulation
我有一個應用程序,我希望以連續的升序分配用戶項,但只針對用戶先前分配的item_ids進行連續分配。
-- 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
我已經測試了完整的查詢(使用子查詢),並且該查詢在數據庫上有效,但是當我使用$this->db->set()
方法,並且$escape
參數等於FALSE
,每插入一個零時間; 似乎在調用insert()
方法之前先評估了子查詢(指定為字符串)。
我可以指示set()
方法將子查詢放入生成的INSERT
查詢中,以便在數據庫上進行評估嗎?
以這種方式使用它不是一個好的選擇/主張,因為它們可以是並行查詢,可以讀取該數據並仍然獲得相同的值。 可能有重復價值的機會。
而是創建一個序列表,將生成的ID的值存儲在序列表中。 要使用新ID,請執行以下步驟:
這樣,您可以確保相同的唯一價值。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.