MySQLで同じデータにフラグ付けする方法とは?
- MySQLを使用して同じデータにフラグを付ける方法について教えてください。データベース初心者で、SQL文を試してもうまくいきません。
- 以下の2つのテーブルを使用し、テーブル2の項目カラムに存在するデータが、テーブル1の区分にあればフラグを付けたいです。
- 区分にデータが全て埋まっていれば簡単にできますが、先頭行のみデータがあり、次の区分まではNullです。
- ベストアンサー
MySQLで同じデータにフラグ付け出来ますか?
データベースの初心者です。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 よろしくお願いします。
- Yuu-mama3
- お礼率80% (4/5)
- MySQL
- 回答数2
- ありがとう数2
- みんなの回答 (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;
その他の回答 (1)
- yambejp
- ベストアンサー率51% (3827/7415)
質問が意味不明 >テーブル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
- PHPでDBからデータを抽出してHTMLで表示する
クライアント上で表示されているHTMLのテキストボックスに入力された文字列をホストに送信し、送信した文字列をSQLの抽出条件に設定してDB(MySQL)に登録しているデータ一覧をPHPで取得後、取得したデータ一覧をクライアントのHTMLのTABLEに一覧で表示したいのですが、どのようにPHPとHTMLをプログラムすればよいでしょうか? イメージ MysSQL テーブル カラム1|カラム2|カラム3| AAAAA|BBBBB|CCCCC| BBBBB|BBBBB|CCCCC| DDDDD|BBBBB|CCCCC| HTML テキストボックス カラム1「AAAA」 検索実行↓ HTML テーブル カラム1|カラム2|カラム3| AAAAA|BBBBB|CCCCC| AAAAA|BBBBB|CCCCC| 素人染みた質問で申し訳ございませんが、ご存知の方がいらっしゃいましたら終えてください。 以上
- ベストアンサー
- HTML
- PHPでDBからデータを抽出してHTMLで表示
こんにちは。 PHP初心者のものです。 クライアント上で表示されているHTMLのテキストボックスに入力された文字列をホストに送信し、送信した文字列をSQLの抽出条件に設定してDB(MySQL)に登録しているデータ一覧をPHPで取得後、取得したデータ一覧をクライアントのHTMLのTABLEに一覧で表示したいのですが、どのようにPHPとHTMLをプログラムすればよいでしょうか? イメージ MysSQL テーブル カラム1|カラム2|カラム3| AAAAA|BBBBB|CCCCC| BBBBB|BBBBB|CCCCC| DDDDD|BBBBB|CCCCC| HTML テキストボックス カラム1「AAAA」 検索実行↓ HTML テーブル カラム1|カラム2|カラム3| AAAAA|BBBBB|CCCCC| AAAAA|BBBBB|CCCCC| 素人染みた質問で申し訳ございませんが、ご存知の方がいらっしゃいましたら終えてください。 以上
- 締切済み
- PHP
- テーブルAにあって、テーブルBにないデータ抽出
このようなデータのテーブルがあります。 テーブルA key ID ----------------- 1 AAAAA 2 BBBBB 3 CCCCC 4 DDDDD 5 EEEEE 6 FFFFF 7 GGGGG 8 HHHHH 9 IIIII テーブルB key ID ----------------- 1 AAAAA 2 CCCCC 3 EEEEE 4 FFFFF 5 HHHHH 6 IIIII 7 JJJJJ 8 KKKKK 9 LLLLL この場合テーブルAのIDの中で、テーブルBのIDには存在しない行を取り出すのに、プログラムを使わずに取得する方法はありますか? この例だと取得するはずの行は key ID ----------------- 2 BBBBB 4 DDDDD 7 GGGGG になります。 どうかよろしくお願いします。
- ベストアンサー
- MySQL
- MySQL文がわかりません。
いつもお世話になってます。 PHP+MySQLを使用しています。 下記のような操作を行いたいのですが、 MySQL文を教えて頂けませんでしょうか。 table名:person person_id : name : email 1 : tanaka : aaaaa 2 : suzuki : bbbbb 3 : sato : ccccc 4 : saito : ddddd 5 : takahasi : eeeee 上記のようなテーブルがあったとして、 例えば、person_idが2,4のものを抽出して、 table名:sendmail send_id : name : email : ticket 1 : ito : fffff : 10-20 2 : huruka : eeeee : 11-01 3 : suzuki : bbbbb : 11-19 4 : saito : ddddd : 11-19 上記テーブルに追加(send_idの3,4)したいのです。 ticketカラムは、send_idの3,4で同じ値(文字列)を使います。 大変お手数ですが、上記内容にてご教授願います。
- ベストアンサー
- MySQL
- 秀丸のマクロでカラムごとの処理
aaaaa,bbbbb,ccccc,ddddd,eeeee 上記のようなCSVファイルで、2カラム目のbbbbbと 4カラム目のdddddの文字を変換するという場合 どういったマクロになりますでしょうか? よろしくお願いします。
- ベストアンサー
- その他([技術者向] コンピューター)
- ACCESS n対nのデーターを結合したいのですが・・・。
お知恵をかしてください。 Aテーブル No 商品名 金額 1 AAA 1,111 3 CCC1 3,333 3 CCC2 3,333 5 EEE 5,555 Bテーブル No 商品名 金額 1 AAAAA 11,111 2 BBBBB 22,222 4 DDDDD 44,444 5 EEEEE1 55,555 5 EEEEE2 55,555 をNOで結合して Cテーブル AかBNo A商品 A金額 B商品 B金額 1 AAA 1,111 AAAAA 11,111 2 ブランク BBBBB 22,222 3 CCC1 3,333 ブランク 3 CCC2 3,333 ブランク 4 ブランク DDDDD 44,444 5 EEE 5,555 EEEEE1 55,555 5 ブランク EEEEE2 55,555 というテーブルを作成したいのですが、(AテーブルBテーブルのNoが一緒だったら1行目は行を1行にしたい。)ということは可能でしょうか? 詳しい方教えてください。
- ベストアンサー
- その他(データベース)
- MySQLで行単位の和算はどうすれば良いですか?
データベース・MySQLの初心者です。 もう一つ教えてください。 下のテーブルで、NO、数値、和算カラムがあります。 NOカラムの1、2の行の数値カラムを足し、 NOカラム2の和算カラムに、結果の3を入れます。 同じように、2行づつ和算を行なうには、どのようにSQL文を つくれば良いでしょうか? テーブル NO 数値 和算 和算カラムの結果 1 1 null null 2 2 null 3 3 5 null 7 4 2 null 7 5 2 null 4 よろしくお願いします。
- ベストアンサー
- MySQL
- 【Excel2007】A列の値がB列に存在しないことを確認したい
いつもお世話になっております。 Excel2007を使用しております。 次のような一覧があります。 A列 B列 aaaaa aaaaa bbbbb bbbbb ccccc ddddd ddddd fffff eeeee A列にはあるが、B列にはない値を取得したいと 思っております。 この例であれば、「ccccc」と「eeeee」を抜き出したいのです。 何か関数などで抜き出す方法がございましたら、 教えて頂けませんか? A列、B列ともに2000行程度あるため、調査に苦労しています。 ぜひよろしくお願いいたします。
- ベストアンサー
- オフィス系ソフト
- ファイルを移動するためのバッチファイル
テキストファイル(1行に1つのファイル名が書かれていて、ファイルの数だけの行があるテキスト)を読み込み それをもとに、パス指定した参照先ディレクトリより、1つずつファイルを取得し、 パス指定した保存先ディレクトリに保存していくという、ファイルを移動(コピー)するためのバッチファイルを作りたいのですが どのようなコマンドを記述すればよいでしょうか? (できれば、MS-DOSのバッチファイルだと助かります) 例 [list.txt] aaaaa bbbbb eeeee [参照先] aaaaa bbbbb ccccc ddddd eeeee ↓ [保存先] aaaaa bbbbb eeeee
- ベストアンサー
- その他(ソフトウェア)
- 3つ以上の外部結合から抽出するSQL構文
次の3つのTABLEから期待する結果(結果を参照)を導きたいのですがJOIN等を使用しても期待と異なります。SQLを教えて下さい。結果は、SELECTでもVIEWでも構いません。一つのSQLでなくても構いません。 ●テーブル構成 テーブル名 - TB_A- -----TB_B--- ----TB_C---- ------ ------------- ------------- 列名 EMPNO EMPNO DATA1 EMPNO DATA2 レコード1 000001 000002 AAAAA 000001 AAAAA レコード2 000002 000002 BBBBB 000002 BBBBB レコード3 000003 000002 CCCCC 000003 CCCCC ●結果 列名 EMPNO DATA1 DATA2 レコード1 000001 ???????? AAAAA レコード2 000002 AAAAA BBBBB レコード3 000002 BBBBB ???????? レコード4 000002 CCCCC ???????? レコード5 000003 ???????? CCCCC
- 締切済み
- その他(データベース)
お礼
やっと解決しました! ご回答ありがとうございました。