如何在mysql CONCAT函数中使用自动增量值?

问题描述 投票:1回答:4

我有这个问题:

我想像这样在图像表中插入新行:

INSERT INTO image (pr_id, kelias, tipas) VALUES(111111, CONCAT('1111111111', '_', image.id, '.jpg'), '0')

但是当我每次尝试输入CONCAT值或每次返回0时,image.id函数都会出错。

[image.id是自动递增。

mysql concat
4个回答
1
投票

您可以使用BEFORE INSERT触发器-

CREATE TRIGGER trigger1
  BEFORE INSERT
  ON image
  FOR EACH ROW
BEGIN
  SET NEW.kelias = CONCAT(NEW.kelias, NEW.pr_id);
END

0
投票

尝试

INSERT INTO image (pr_id, kelias, tipas)
SELECT 11111, 
       CONCAT('1111111111', '_', max(image.id) + 1, '.jpg'), 
       '0'
FROM image

0
投票
mysql_query("INSERT INTO image (kelias, tipas) VALUES('anything', '0')");
$img_id = mysql_insert_id();
$kelias = '1111111111' . '_' . $img_id . '.jpg';
mysql_query("UPDATE image SET kelias='$kelias' WHERE pr_id = $img_id");

0
投票

您可以使用BEFORE INSERT触发器-

CREATE TRIGGER trigger1
  BEFORE INSERT
  ON image
  FOR EACH ROW
BEGIN
  SET NEW.kelias = CONCAT( NEW.kelias , '_', 

  (SELECT AUTO_INCREMENT
  FROM information_schema.TABLES
  WHERE TABLE_SCHEMA = "<your database name here>"
  AND TABLE_NAME = "image" )

  , '.jpg');
END

然后通过:]获得所需的结果>

INSERT INTO image (pr_id, kelias, tipas) VALUES(111111, '1111111111', '0')
© www.soinside.com 2019 - 2024. All rights reserved.