[英]Writing a value from a row into the another row and column
我試圖在我的數據庫中“嫁給”兩個假想的人。 我要做的是選擇某個年齡范圍內的人員,然后將彼此的ID寫入一欄中。
如果這是我的桌子
ID | sex | age | married to
1 | M | 25 | NULL
2 | F | 28 | NULL
3 | M | 75 | NULL
結果應如下所示:
ID | sex | age | married_to
1 | M | 25 | 2
2 | F | 28 | 1
3 | M | 75 | NULL
我知道選擇語句應如下所示:
SELECT ID FROM table WHERE age BETWEEN ageMin AND ageMax AND married_to IS NULL
但是我不知道如何讓SQLite在右列中寫入ID。 特別是如何在具有約150k條目的數據庫中實現此目的。 對我來說,棘手的部分是始終只寫一行而沒有一個超級慢的程序。 有人可以幫我嗎?
首先,您需要捕獲兩個ID。 一個人A和一個人B結婚。
接下來,一旦擁有ID,您將需要執行兩個更新查詢:
SQLite允許您選擇隨機行 。
SELECT ID FROM table WHERE age BETWEEN ageMin
AND ageMax AND married_to IS NULL ORDER BY RANDOM() LIMIT 1
您可以執行兩次,檢查以確保ID分開,然后執行更新查詢。
UPDATE table SET married_to = Person_B_ID WHERE ID = *Person A's ID*
和
UPDATE table SET married_to = Person_A_ID WHERE ID = *Person B's ID*
您可以多次運行此查詢序列。 但是,RANDOM()的性能可能不適用於大型數據庫。 如果是這種情況,您可能需要運行查詢以獲取需要結婚的人的所有ID,然后使用其他某種編程語言將其匹配。 然后,您可以自動生成更新查詢以“結婚”數據庫中的對。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.