このテーブルをこのように作成しました。これにより、ユーザーごとにゼロから始まる一意の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;
私はあなたがその考えを理解することを望みます。