• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:キーワードを1つにまとめたいです)

キーワードを1つにまとめる方法

このQ&Aのポイント
  • キーワードを1つにまとめる方法を紹介します。
  • 複数のキーワードを半角スペースで区切ることでまとめることができます。
  • MYSQL5.1かMS ACCESS2003を使用することで、簡単にキーワードをまとめることができます。

質問者が選んだベストアンサー

  • ベストアンサー
回答No.2

MySQLであれば、独自機能のGROUP_CONCAT関数で実装できると思います。

参考URL:
http://dev.mysql.com/doc/refman/5.1/ja/group-by-functions.html
mellow91
質問者

お礼

うわ!!この関数凄いです!!知りませんでした!ご回答ありがとうございます!!

その他の回答 (1)

  • piroin654
  • ベストアンサー率75% (692/917)
回答No.1

以下、Accessでの方法です。 クエリで表示するならば、 http://www.f3.dion.ne.jp/~element/msaccess/AcTipsVbaDJoin.html テーブルに直接取り込むならば、 http://oshiete1.watch.impress.co.jp/qa6628827.html の書き直しで、 TABLE1と同じ構造のTABLE2を設定し、 TABLE2: ID KW 以下のコードを標準モジュールに保存し、 ボタンクリックで呼び出すか、あるいは ボタンクリックの中にプロシージャの 中身をコピーして実行してもいいです。 なお、DAOを使っているので、コード表のツールから 参照設定を選択して、 Microsoft DAO xx Object Library にチェックを入れて、OKとします。xxは3.6のような数字です。 Sub test() Dim db As Database Dim rs1 As Recordset Dim rs2 As Recordset Dim rs3 As Recordset Dim strSQL As String Dim myStr1 As String Dim myStr2 As String strSQL = "SELECT TABLE1.ID FROM TABLE1 GROUP BY TABLE1.ID;" Set db = CurrentDb Set rs1 = db.OpenRecordset("TABLE1") Set rs2 = db.OpenRecordset("TABLE2", dbOpenDynaset) Set rs3 = db.OpenRecordset(strSQL) If rs3.RecordCount > 0 Then rs3.MoveFirst Do Until rs3.EOF If rs1.RecordCount > 0 Then rs1.MoveFirst Do Until rs1.EOF If rs3!ID = rs1!ID Then myStr1 = rs1!ID myStr2 = myStr2 & " " & rs1!KW End If rs1.MoveNext Loop rs3.MoveNext End If rs2.AddNew rs2!ID = myStr1 rs2!KW = myStr2 rs2.Update myStr1 = "" myStr2 = "" Loop End If rs1.Close: Set rs1 = Nothing rs2.Close: Set rs2 = Nothing rs3.Close: Set rs3 = Nothing db.Close: Set db = Nothing End Sub

mellow91
質問者

お礼

コードまで書いていただいてありがとうございます!なるほど、これならできそうですね!ご回答ありあとうございました!!ちなみに今回はmysqlのgroup_concat関数を使おうと思います。でも、勉強になります、助かりました!

関連するQ&A