如何使用3个键插入或更新mysql表

时间:2013-01-30 14:48:48

标签: php mysql

我的mysql中有一个看起来像这样的表:

location(char17), id(int9), sideid(int9), total(int9), other...(other)

如果找不到ID和SideID,我必须在此表中插入新内容,如果它们都相同则更新。我的困境是我需要它来检查ID和SideID是否存在。

因此,在我的表中添加一些内容之后,应该看起来像这样:

mplace1, 100, 4, 10, other data...
mplace1, 100, 5, 6,  other data...
mplace1, 100, 3, 6,  other data...
mplace1, 50,  3, 6,  other data...
mplace1, 50,  6, 6,  other data...

前3列基本上是一个巨型键。可以有多个位置,一个位置内的多个ID,以及其中的多个SideID。但它不能完全匹配。因此,如果Location,ID和SideID都匹配,则不应将其插入数据库,而是更新“其他数据”。

将它放在一个单独的mysql_query中也非常重要......我已经尝试了几个星期了,但我仍然迷失了。希望有人知道如何做到这一点。请注意,如果它不能在一个查询中完成,那么我猜我会接受。这是一项特殊的任务。

只是澄清一下。我的意思是那些3列(位置,id,侧面)在一起不能重复。因此其他列将能够具有不同的值。

因此,如果 mplace1,100,4,10,“其他一些数据1”在表格中。插入此 mplace1,100,4,999,“其他一些”会更新。如何指定要检查的列和无关紧要的列。

2 个答案:

答案 0 :(得分:1)

INSERT OR REPLACE INTO table (column1, column2) VALUES ('value1', 'value2');

这将自动检查重复项(例如重复的ID),因此如果需要它会update,否则它只会insert一个新行。

答案 1 :(得分:0)

INSERT OR REPLACE INTO table (column1, column2) VALUES ('value1', 'value2');