今ファイルをアップロードして、アップロードされたデータをデータベースのテーブル中に保存して、その保存されているレコードの処理をしているのですが、カラムnoが2のとき3に変更して、001_,002_などの連番を出力しているのですが、現在の状況だと、
ソース
select
case no when 2 then
concat(lpad((select @a:=@a+1 from (select @a:=0) as dummy), 3, '0'),'')
else ""
end as dummy,file_name,no
from table;
と書いて実行すると
|dummy| file_name | no | path |
| 001 |sample1 | 2 |conect/file1 |
| 002_ | sample2 | 2 | conect/file2 |
| 003_ |sample3 | 2 |conect/file3 |
| | sample4 | 3 |conect/file4 |
| 004_ | sample5 | 2 |conect/file5 |
とでます。
ただ、no2から3に変えたものだけに連番を振りたいので上記の例でいうと
|dummy| file_name | no | path |
| 001_ |sample1 | 3 |conect/file1 |
| 002_ | sample2 | 3 | conect/file2 |
| 003_ |sample3 | 3 |conect/file3 |
| | sample4 | 3 |conect/file4 |
| 004_ | sample5 | 3 |conect/file5 |
としたいです。
ただUPDATE table SET no=
CASE when no=2 THEN 3 END;
select
case no when 2 then
concat(lpad((select @a:=@a+1 from (select @a:=0) as dummy), 3, '0'),'_')
else ""
end as dummy,file_name,no
from table;とやると上記の例のsample4に連番004_が入ってしまうため、上手くいきません。
2から3に変わったら連番ふるという処理が分かる方いたらお願い致します。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2018/01/22 02:55