【问题标题】:Add row value in sql query在sql查询中添加行值
【发布时间】:2018-12-31 06:47:06
【问题描述】:

我正在尝试更新表 product_desc,其中有两列 namedescription。我有一个 desc 的标准文本:'Buy $name from us'

现在,我可以简单地编写更新查询,但我想使用来自product_desc.name 字段的$name

这可以通过只写查询来实现吗?

UPDATE product_desc 
  SET description = "Buy $name from blah blah" 
  WHERE $name = product_desc.name where id > 0;

类似的东西。

【问题讨论】:

标签: php mysql sql oracle mysqli


【解决方案1】:

你应该使用 AND 来获得更多条件

UPDATE product_desc 
SET description = concat("Buy ", :name, "  from blah blah" )
where $name = product_desc.name 
AND id > 0; 

无论如何,您应该使用正确的数据绑定,而不是在 sql 代码中使用 php var ..

UPDATE product_desc 
SET description = "Buy $name from blah blah" 
where :name = product_desc.name 
AND id > 0; 

查看数据库驱动程序以使用正确的绑定

如果您只需将产品名称添加到描述中,也可以按照 Patrick Q 的建议

UPDATE product_desc 
SET description = concat("Buy ", name  , " from blah blah" )
; 

【讨论】:

  • 按照我的阅读方式,OP 实际上想使用 name 列中的值作为描述的一部分。不需要变量或绑定,只需在固定文本和列引用上进行连接。
  • 缺少括号..添加。
  • @scaisEdge 我有 MariaDB,它在 :name 附近显示意外字符
  • 你必须使用适当的 binging,而不是直接使用 :name 的代码 .. 无论如何,请检查你的第 3 条建议是否也适合你的需要
  • @scaisEdge 试过这个。它执行但没有任何反应。
猜你喜欢
  • 2023-03-25
  • 1970-01-01
  • 2021-11-16
  • 1970-01-01
  • 2018-03-22
  • 1970-01-01
  • 2021-09-03
  • 2019-12-25
  • 1970-01-01
相关资源
最近更新 更多