我试图在插入语句中将一个数字连接到一个 max+1 数字,但我有点卡住了。我的桌子是这样的:
CREATE TABLE `articles` (
`artcId` INT(10) NOT NULL AUTO_INCREMENT,
`artcUserId` INT(10) NOT NULL DEFAULT '0',
`artcStackId` INT(10) NOT NULL DEFAULT '0',
`artcPublicId` INT(10) ZEROFILL NOT NULL DEFAULT '0',
`artcCountry` VARCHAR(2) NULL DEFAULT NULL,
`artcTitle` VARCHAR(200) NULL DEFAULT NULL,
PRIMARY KEY (`artcUserId`, `artcId`)
)
COLLATE='utf8_general_ci'
ENGINE=MyISAM;
我现在的sql是这样的:
insert into articles (artcUserId, artcStackId, artcCountry, artcTitle)
select 4,IFNULL((MAX(artcStackId)+1) ,0),'US','Hello World'
FROM articles;
我要做的是,将一个数字连接到新的 artcStackId 并将其保存到数据库中。但我被困住了。请参阅第二张图片 artcPublicId。
insert into articles (artcUserId, artcStackId, artcCountry, artcTitle)
select 2,IFNULL((MAX(artcStackId)+1) ,0),
case when new.artcCountry = 'US' then conact(91, -- the new artcStackId goes here --)
when new.artcCountry = 'UK' then conact(92, -- the new artcStackId goes here --)
when new.artcCountry = 'CA' then conact(93, -- the new artcStackId goes here --)
end
,'UK','Hello World'
FROM articles;
select * from articles;
知道如何做到这一点吗?artcPublicId 是 91 或 92 或 93,具体取决于国家和新的 artcStackId