我有一個簡單的MySQL表,有三列:「id」(INT),「property」(VARCHAR)和「value」(VARCHAR)。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
,並獲得:
+----+----------+-------+
| id | property | value |
+----+----------+-------+
| 45 | money | 600 |
| 45 | sex | male |
| 46 | money | 600 |
+----+----------+-------+
可能重複的[插入MySQL表或更新如果存在](https://stackoverflow.com/questions/4205181/insert-into-a-mysql-table-or-up日期如果存在) –