"id"(INT)、 "property"(VARCHAR)、 "value"(VARCHAR)の3つの列を持つ単純なMySQLテーブルがあります。2つの列がデータと一致する場合はMySQLの更新レコード、そうでない場合は行を挿入します
すべての列が同じレコード(つまり、同じIDを持つ複数のレコード)を持つことができなければなりません。
アイデアは、異なるIDに一致するさまざまなプロパティを保存することです。
私の質問は、データがIDとプロパティの両方に一致する場合、どのようにレコードを更新するのですか?それ以外の場合は新しいレコードを追加しますか?
私は当初ON DUPLICATE KEY
を使用することを考えましたが、私の列は一意ではないので、これは機能しません。
はここで希望の動作の例です:
1:私は、このテーブルで始まっ:
+----+----------+-------+
| id | property | value |
+----+----------+-------+
| 45 | money | 500 |
+----+----------+-------+
2:id = 45, property = sex, value = male
を、そして私が手に:私はその後、挿入
+----+----------+-------+
| id | property | value |
+----+----------+-------+
| 45 | money | 500 |
| 45 | sex | male |
+----+----------+-------+
3:次に、id = 45, property = money, value = 600
を挿入します。
+----+----------+-------+
| id | property | value |
+----+----------+-------+
| 45 | money | 600 |
| 45 | sex | male |
+----+----------+-------+
4:id = 46, property = money, value = 600
、およびget:最後に、私はこれを行うことができます
+----+----------+-------+
| id | property | value |
+----+----------+-------+
| 45 | money | 600 |
| 45 | sex | male |
| 46 | money | 600 |
+----+----------+-------+
可能性のある重複した[存在する場合は、MySQLのテーブルにINSERTまたはUPDATE](https://stackoverflow.com/questions/4205181/insert-into-a-mysql-table-or-up存在する場合は存在する) –