2012-11-23 34 views
1

我有一個數據庫表,其中包含一個包含系統生成密鑰的「密鑰」字段。如何確認mysql數據庫中的密鑰列表存在

 
| id | key     | etc. 
|====|=====================|================= 
| 1 | osi32i4kjwlqe  | 
|----|---------------------|----------------- 
| 2 | klwjeklj1343k  | 
|----|---------------------|----------------- 
| 3 | dfk32ld32ll23  | 
|----|---------------------|---------------- 
| 4 | lk3jkl3j42lk4  | 
-------------------------------------------- 

另外,我有鑰匙的列表:

 
{'osi32i4kjwlqe','ksadalala12','klwjeklj1343k','dfk32ld32ll23','lk3jkl3j42lk4','askalksl56'} 

注意,有些名單上的鍵存在於數據庫中,和別人不一樣。

我想,如果可以的話,運行一個有效的查詢將通過列表,並確認數據庫中存在密鑰。

ie:如果密鑰存在,則什麼都不做。如果沒有,用這個鍵插入一個新的行。

有人知道有效的方法嗎?

謝謝。

回答

5

我假設你的密鑰列是用UNIQUE聲明的。如果是這樣,只需循環並使用

INSERT IGNORE INTO table ... 

對於JSON數組中的每個鍵。如果沒有,那麼,我認爲這就是你想要完成的任務:)

+2

它應該被添加上面假設在'key'列上有一個'unique'約束。 – lafor

+0

沒錯,假設名爲'key'的列是UNIQUE是不合理的。糾正。 –

+0

你的假設是正確的:)工作完美,謝謝。 –

相關問題