我有一个表,存储元值,但是,在插入/更新我想执行 - 没有唯一的键(甚至不是一个列的组合)。MySQL - 更新行,如果某列值等于插入行(没有重复键)
1列存储后的ID,1元值的VARCHAR键和1持有的元价值...
现在的问题是,该表CAN包含重复行,很容易,这可能发生:
id_post | key | value
5 'bobber' 4
3 'locer' 2
5 'bobber' 4
现在我想做的是做插入的变化或重复密钥更新,问题是,我没有将触发更新的关键。
如果表中已经存在key
值,我想更新相应的value
列。如果不是,我想插入一个全新的行。
我发现的所有结果都是添加一个关键约束,这是我不能做的事情。
另外,我做的不是想创建一个存储过程/函数。
请帮忙吗?谢谢:-)
你不能在SQL中这样做,你需要一种编程语言,它可以首先执行一个'SELECT',然后根据它是否发现任何内容或者'UPDATE'或'INSERT'。 – Barmar
你的愿望没有意义。如果你想在密钥存在的时候进行“更新”,那么你就会说 - 你想要的密钥是唯一的,至少对于新数据进入表中。 –
@GordonLinoff它从更广泛的角度来看,问题是我不想在KEY存在的情况下更新,但是如果存在COLUMN VALUE。无论如何,我不使用重复值的事实并不意味着有人/别的东西不使用它们......有些系统的设计方式是他们不存储数组作为1个序列化的值,但是〜数组值将作为行转换为DB。我希望你了解它:) –