MySQL-如果某列值等于else,则更新行插入行(无重复键)

MySQL-如果某列值等于else,则更新行插入行(无重复键),mysql,sql-update,sql-insert,insert-update,Mysql,Sql Update,Sql Insert,Insert Update,我有一个存储元数据的表,但是,在我要执行的插入/更新中,没有唯一的键(甚至没有列的组合) 1列存储post的ID,1列存储元值的varchar键,1列保存元值 现在的问题是,表可以包含重复的行,很容易发生这种情况: id_post | key | value 5 'bobber' 4 3 'locer' 2 5 'bobber' 4 现在我想做的是做一个插入或复制密钥更新的变体,问题是,我没有

我有一个存储元数据的表,但是,在我要执行的插入/更新中,没有唯一的键(甚至没有列的组合)

1列存储post的ID,1列存储元值的varchar键,1列保存元值

现在的问题是,表可以包含重复的行,很容易发生这种情况:

id_post   |   key   |   value
   5        'bobber'     4
   3        'locer'      2
   5        'bobber'     4
现在我想做的是做一个插入或复制密钥更新的变体,问题是,我没有触发更新的密钥

如果表中已经存在
值,我想更新相应的
列。如果不是,我想插入一个全新的行

我找到的所有结果都是添加了一个键约束,这是我无法做到的。
此外,我确实不想创建一个存储过程/函数


需要帮忙吗?谢谢:-)

您不能在SQL中执行此操作,您需要一种编程语言,该语言可以首先执行
选择
,然后执行
更新
插入
,这取决于它是否找到了任何内容。您的愿望没有意义。如果要在键存在时
update
,那么您是在以一种迂回的方式说,您希望键是唯一的,至少对于进入表中的新数据是唯一的。@GordonLinoff从更广泛的角度来看,问题是如果键存在,我不想更新,但如果列值存在,我就不想更新。无论如何,我不使用重复的ish值并不意味着其他人/事物没有使用它们。。。某些系统的设计方式不将数组存储为1个序列化值,但将~数组值作为行转录到DB。我希望你知道:)