これ何て呼びますか

登録されているSQLデータの修正方法について2つ教えて頂けないでしょうか?

■質問1:先頭または末尾に指定名が無いデータを対象に一括置換する方法
例えば、company というテーブル内にあるデータで、○○○ という会社名が登録済み。
指定で、先頭または末尾に 「株式会社」という名称が無い場合には付与して「○○○株式会社」と修正登録するにはどういった指定を行えば良いでしょうか?


■質問2:2つまたは複数のテーブルを対象に条件を指定して、検索及び一括置換する方法
foodというテーブルに「ハンバーガー」が入っていて、かつ、setというテーブルに「ポテト」以外のデータが入っている場合には、set内の全てのデータを「ポテト」に変更したいです。

うまく説明ができないのですが、伝わりますでしょうか…?
foodにハンバーガーが入っているデータで、setに「ポテト」が登録されていない場合、全てポテトに書き換えるということです。

お詳しい方いらっしゃいましたら、アドバイスお願いいたします。mm

A 回答 (1件)

> 質問1


update company set companyname=concat(companyname,'株式会社')
where not commpanyname like '株式会社%' and not commpanyname like '%株式会社'

※concatはSQLによって名称が違うかも

> 質問2
条件があやしい、それとテーブル名setはやめたほうがいい(どのSQLでも予約後)

create table food (foodname varchar(10));
insert into food values('ハンバーガー');

create table setmenu(setname varchar(10));
insert into setmenu values('ポテト'),('コーラ'),('サラダ');

update setmenu set setname='ポテト'
where (select count(*) from food where foodname='チーズバーガー')>0
※更新されない

update setmenu set setname='ポテト'
where (select count(*) from food where foodname='ハンバーガー')>0
※更新される
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!