$update = "insert into mapa_etiquetas (nombre,urlimagen,id_usuario) values('$this->nombre', '$ruta', '$u') on duplicate key update urlimagen=values('$ruta')";
我想避免我通常做的事情
- 如果存在则选择
- 如果存在
- 更新
- 其他
- 插入
问题,我写的句子会那样吗?我的看法,如果我打电话
$update = "insert into mapa_etiquetas ('casa','image.png',2)
values('$this->nombre', '$ruta', '$u')
on duplicate key update urlimagen=values('$ruta')";
$update = "insert into mapa_etiquetas ('casa','image2.png',2)
values('$this->nombre', '$ruta', '$u')
on duplicate key update urlimagen=values('$ruta')";
结果将是表中名称为“casa”的两个元素,对吗? (而不是编辑 urlimagen。因为它会被认为是不同的元素,对吧)
我怎么能通过一个 mysql 语句更新 urlimagen(用于 nombre,iduser 组合),如果不存在,则插入它?
提前致谢!
最佳答案
update urlimagen = values('$ruta')
告诉 MySql 查找名为 value 的列 $ruta
。更改您的语句以使用实际列名:
insert into mapa_etiquetas (nombre, urlimagen, id_usuario)
values ('$this->nombre', '$ruta', '$u'),
('$this->nombre', '$ruta2', '$u')
/*Add more rows here*/
on duplicate key update
urlimagen = values(urlimagen)
关于php - 了解Mysql 'on duplicate key',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5474840/