2

我的 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, "Some other data 1"在表中。插入这个mplace1, 100, 4, 999, "Some other"会更新。如何指定要检查的列以及无关紧要的列。

4

2 回答 2

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

这将自动检查重复项(例如重复的 ID),因此如果需要它会执行update其他操作,它只会insert执行新行。

于 2013-01-30T15:38:18.113 回答
0
INSERT OR REPLACE INTO table (column1, column2) VALUES ('value1', 'value2');
于 2016-01-07T10:51:19.487 回答