我有这样构建的表,它为每个用户分配一个唯一的 articleId,从零开始。
CREATE TABLE `articles` (
`artcId` INT(10) NOT NULL AUTO_INCREMENT,
`artcUserId` INT(10) NOT NULL DEFAULT '0',
`artcStackId` INT(10) NOT NULL DEFAULT '0',
`artcTitle` VARCHAR(200) NULL DEFAULT NULL,
PRIMARY KEY (`artcUserId`, `artcId`)
)
COLLATE='utf8_general_ci'
ENGINE=MyISAM;
还有一个部分为每篇文章分配一个运行序列号(artcStackId)。你会在代码中看到。
问题是,是否可以根据用户所在的国家/地区分配一个 artcStackId ?该国家/地区代码将来自 php。
例如:如果是美国则从 10001+1 开始,如果其英国从 20001+1 开始,如果其 CA 则从 30001+1 开始,以此类推。
有可能做到这一点吗?
我当前的 SQL 查询如下:
insert into articles (artcUserId, artcStackId, artcCountry, artcTitle)
select 4,IFNULL((MAX(artcStackId)+1) ,0),'US','Hello World'
FROM articles;
但我想要它的方式必须像(这只是一个示例 sql):
insert into articles (artcUserId, artcStackId, artcCountry, artcTitle)
select 4, IF artcCountry = 'US' then (selct MAX(artcStackId)+1
where artcCountry = 'US'),
'US','Hello World'
FROM articles;
我希望你能明白。