データベースの初心者です。MySQLを使用してSQL文を試しましたが、うまくいきません。
わかりやすく教えていただけますか?
下のような2つのテーブルで、テーブル2の項目カラムに存在するデータが、
テーブル1の区分にあれば、一致する行(NOカラムの5~7)だけに、
フラグ”1”を付けたいのです。(区分カラムに、"*"で始まるデータは除きます)
区分に、データが全て埋まっていれば簡単に出来るのですが、
先頭行のみデータがあって、次の区分まで、Nullが入っています。
テーブル1
NO 区分 フラグ
1 aaaaa null
2 null null
3 null null
4 null null
5 bbbbb null
6 null null
7 *nozoku null
8 ccccc null
9 null null
テーブル2
NO 項目
1 bbbbb
2 eeeee
よろしくお願いします。
No.2ベストアンサー
- 回答日時:
ああ、なんとなくわかりました
>NULLの場所に、aaaaa、bbbbb、cccccを挿入する方法も分からないため、
ということはnullを置き換えてよろしいのでしょうか?
であれば、以下のようなupdateをしてみるとよいかもしれません
//元データ
create table tbl1(no int,kubun varchar(20) null,flg tinyint null);
insert into tbl1 (no,kubun) values(1,'aaaaa'),(2,null),(3,null),(4,null),(5,'bbbbb'),(6,null),(7,'*nozoku'),(8,'ccccc'),(9,null);
create table tbl2(no int,komoku varchar(20));
insert into tbl2 values(1,'bbbbb'),(2,'eeeee');
//nullや*で始まる区分を置き換える
update tbl1 set kubun=if(kubun is null or kubun like '*%',@a,@a:=kubun) order by no;
//tbl2の項目と合致するtbl1のフラグをたてる
update tbl1 inner join tbl2 on tbl1.kubun=tbl2.komoku set tbl1.flg=1;
No.1
- 回答日時:
質問が意味不明
>テーブル1の区分にあれば、一致する行(NOカラムの5~7)
たしかに5行目は「bbbbb」で一致しますが、6行目や7行目がどうして一致する行なのでしょう?
また8行目以降がなぜ一致しない行なのでしょう?
「eeeee」の立場はどうなっているのでしょう?
この回答への補足
説明不足で、ごめんなさいm(__)m
また、お返事が遅くなり、スミマセン。
テーブル1の区分には、NULLが入っていますが、
本当は、NOカラムの2~4には、aaaaaが入り、
6~7には、bbbbbが入り、9には、cccccが入ります。
データベースに情報が入力された時点で、先頭行にしか情報がありません。
テーブル2のeeeeeは、テーブル1に存在しないため、無視してください。
NULLの場所に、aaaaa、bbbbb、cccccを挿入する方法も分からないため、
私なりに考えて、テーブル2と一致する5に、フラグを付けて、
次の区分cccccが来るまで、6~7にフラグをつけたいと思いました。
でも、SQLで思い通りに動かないんです。どうすれば、良いのでしょうか?
他の方法も含めて、アドバイスよろしくお願いいたします。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- MySQL PHPとMySQLを使った掲示板の作り方 1 2022/06/02 13:00
- MySQL my_itemsテーブルのIDにAUTO_INCREMENT を追加ができるかで 1 2023/01/03 09:09
- MySQL `picture` varchar(255) のコマンドで間違いないでしょうか? 1 2022/11/21 04:08
- MySQL MySQLのテーブル作成で 自信がありません。 2 2022/08/28 05:35
- PostgreSQL DBFluteについて質問です。 環境:PostgreSQL java8 前提:webアプリケーショ 1 2022/07/07 00:49
- PHP PHPでCSVを出力するさいに、ループの中で前の行の値を変更したい 3 2022/10/27 17:44
- Perl 画像が表示でnull; this.src 1 2022/04/19 11:31
- AJAX JavascriptからPHPへのAjax通信でnullが返ってくる 3 2022/08/03 22:00
- MySQL エラー 1068 (42000): 複数の主キーが定義されていますエラー 2 2022/11/17 04:36
- MySQL SHOW CREATE TABLE posts;これって何ですか? 3 2022/08/28 22:57
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
#1062 - '0' は索引 'PRIMARY' ...
-
テーブル名が可変の場合のクエ...
-
テーブル所有者、スキーマ所有...
-
SQLです。こんな感じですか?あ...
-
mysqlがインストールされている...
-
下記の問合せを行うクエリを、P...
-
SQLについて教えて下さい。 SEL...
-
エラー 1068 (42000): 複数の主...
-
2つのテーブルを結合するときに...
-
SQLiteについて
-
select *, `人口(男)`AND`人口(...
-
はもうダメですか?
-
データベースの接続に失敗して...
-
SQL文のエラー
-
mysqlのログイン情報の確認につ...
-
phpMyAdminをCentOS7にインスト...
-
本を見ながらPHPを勉強している...
-
うまくいきません教えてくださ...
-
「都道府県の面積の大きい順に...
-
次の時間帯の勝率の合計を求め...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
Null値が入れられない
-
nullと同じく空白をCountしない...
-
NULLを含む列の足し算
-
MySQLの特定のカラムの内容を全...
-
SQLでLIMIT句を入れるとエラー...
-
テーブル作成時に、「`id` int(...
-
MySQLで関連したデータを横に並...
-
SQL文を入力したらエラー
-
phpでnot null、a_iでテーブル作成
-
phpとSQLで複数条件で検索する...
-
VIEWに対してWHERE句をつける
-
空白文字を含む文字列データの検索
-
sqlの中で、 例えば条件句で AN...
-
JOIN使ってないのに、JOIN操作...
-
SQL任意に並び替えをしたい
-
コマンドプロンプト 複数の実...
-
SELECT文の二段重ね
-
複数の条件がある場合のsqlの書...
-
SQLのエイリアス
-
Mysql 同一テーブルの複数「別...
おすすめ情報