2012-11-23 36 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

你的假设是正确的:)工作完美,谢谢。 –

相关问题