我知道MYSQL中的INSERT ... ON DUPLICATE KEY UPDATE
语法,但是有没有办法插入别的东西呢?更具体地讲,说我有:MYSQL ON DUPLICATE KEY插入别的东西
INSERT INTO main (a,b,c,d,e) VALUES ('$a','$b','$c','$d','$e');
,其中列“一”是独一无二的,包含了一个任意10位数的字母数字字符串,我是在客户端的电子邮件发送到检索数据链路的公共查询字符串中使用从数据库。 我知道有可能会产生相同的字符串,因为有62^10个可能性,但想象一下$a
包含一个已经存在的10位字符串。我在$a2
中生成了第二个字符串作为备份,现在我想修改上面的插入语句,如果$a
已经存在可以使用$a2
。所以理想情况下我正在寻找类似的东西:
INSERT INTO main (a,b,c,d,e) VALUES ('$a','$b','$c','$d','$e') ON DUPLICATE KEY USE $a2 INSTEAD OF $a;
这怎么办?据我所知ON DUPLICATE KEY INSERT something else
语法不存在。此外,我的条目列表长约20-25个键值对,所以理想情况下我正在寻找只插入不同“a”而不必重写整个键值对列表的内容。 谢谢。
但这不是简单地更新现有条目的列'a'吗?我需要插入一个带有独特'a'的全新条目。 – Oliver
@Oliver。 。 。谢谢你的澄清。 –
哇,这很复杂。对不起,我不太明白这个语法。有没有一些关键字丢失?例如,'SELECT 1 FROM main m'似乎没有任何意义(可能缺少'as')?我认为'x'也是如此。最后一行是什么? 'FROM(SELECT ...'?你是否定义变量作为列名?对不起,我的无知,, – Oliver