nombre', '$ruta',-6ren">
gpt4 book ai didi

php - 了解Mysql 'on duplicate key'

转载 作者:行者123 更新时间:2023-11-29 07:09:27 24 4
gpt4 key购买 nike

$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/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com