在where子句mysql中使用concat进行更新

时间:2017-03-06 21:01:28

标签: mysql

我有这个架构:

    CREATE TABLE `devolucion_medicamento` (
  `id_devolucion_medicamento` int(11) NOT NULL,
  `id_devolucion` int(11) NOT NULL,
  `id_medicamento` int(11) NOT NULL,
  `cantidad` int(11) DEFAULT NULL,
  `fec_mov` timestamp NULL DEFAULT NULL,
  `activo` tinyint(1) DEFAULT NULL,
  `lote` varchar(45) DEFAULT NULL,
  `fec_venc` date DEFAULT NULL,
  `tamano` varchar(45) NOT NULL,
  `inventario` varchar(45) NOT NULL
) 

我必须更新" inventario"的价值。其中id_medicamento,fec_venc,tamano和inventario等于我从应用程序获得的一些串联字符串值。

我想过这样的事情

 UPDATE devolucion_medicamento
SET
inventario="AAAAAA",
WHERE concat(id_medicamento,lote,fec_venc,tamano,inventario)="54062018-09-308"

但我不知道在mysql中是否可行。 我有这个错误:

1064 - 您的SQL语法出错;查看与您的MariaDB服务器版本相对应的手册,以便在#< WHERE concat(id_medicamento,lote,fec_venc,tamano,inventario)=" 54062018-09-308"&#39附近使用正确的语法;在第4行

1 个答案:

答案 0 :(得分:1)

我太新了评论......但是在inventario =" AAAAAA"之后会出现一个逗号。如果是这样,MySQL期待另一个集表达式。