0

mySqlで、何かに基づいて挿入を行うことは可能ですか?私の場合、ユーザーの場所に応じて挿入を行いたいと思います。これらの場所は、US、UK、AU、CAなどです。したがって、場所がUSの場合、英国2-001、2-002などに対して1-0001、1-0002などを実行します。

たぶん、そのようなもののケースを使用することによって、これは可能である可能性がありますか?

私の現在の挿入は次のようになります:

insert into prodClassifieds (userId, userName, classStatus, classCountry, classId)
   select
     $userId, 
     '$userName', 
     1,
     '$userCountry',
     IFNULL((MAX(classId)+1) ,0)
   FROM prodClassifieds

編集:1-0001の-を省略できます。また、MAX(col)はMAX(classId)であり、私が最初に投稿したものではありません。次の値は1+そこにある現在の値です。

4

2 に答える 2

0

はい、これは可能です、

insert into prodClassifieds 
(userId, userName, classStatus, classCountry, classId) 
select $userId, '$userName', 1,
'$userCountry', 
 case when userCountry='US' then 
MAX(sc_stack_id)+1 else 0 end
FROM prodClassifieds 

Uは必要に応じていくつかの条件を追加できます

于 2012-12-29T13:54:20.343 に答える
0

次のようにCASEWHENを使用します。

insert into prodClassifieds (userId, userName, classStatus, classCountry, classId)
   select
     $userId, 
     '$userName', 
     CASE '$userCountry' WHEN 'US' THEN 10000 WHEN 'UK' THEN 20000 ELSE 90000 END CASE
     + 1,
     '$userCountry',
     IFNULL((MAX(sc_stack_id)+1) ,0)
   FROM prodClassifieds 
于 2012-12-29T13:58:19.540 に答える