1. 程式人生 > >mysql資料庫的簡單增刪改查,合併欄位,拼接字元操作,用java完成將一張表中的查詢結果合併存入另一張表的指定欄位

mysql資料庫的簡單增刪改查,合併欄位,拼接字元操作,用java完成將一張表中的查詢結果合併存入另一張表的指定欄位

首先問題描述:我現在有兩個表,一個表是關鍵詞,一個表是含有關鍵詞的標籤,需要做的就是在關鍵詞表中新建一個標籤欄位,把包含該關鍵詞的全部標籤存入其中。比如關鍵詞是Java,標籤可能有Java開發,Java後臺等。我這裡關鍵詞有4000個,標籤有40000個,我用了小段java程式碼+sql的函式就完成了。

基本思想:對於給定的關鍵詞,把包含關鍵詞的標籤篩選出來,然後存到一張表裡,再把該表的結果一條條讀出,存放到關鍵詞表的欄位裡去。想法比較簡單,涉及到一些sql操作可以瞭解一下。

步驟1:讀取關鍵詞和對應ID,(ID是更新時需要,也可以根據關鍵詞更新):

String sql = "select keyword,id from 表名";
ResultSet queryResult = DBUtil.queryRDBdata(sql);
while (queryResult.next()) {
    String word = queryResult.getString("keyword");
    int id=queryResult.getInt("id");

}

步驟2:篩選出包含關鍵詞(word變數)的標籤存入表b,這是一個臨時的表

String sql0 = "CREATE table b SELECT  concat_ws(':',label,count) from 表名 where label like \"%" + word + "%\"";

步驟3:將表b中的資料一條條讀出,存放到變數label中

String sql1 = " select label from b ";
ResultSet queryResult = DBUtil.queryRDBdata(sql1);
while (queryResult.next()) {
   String  a = queryResult.getString("label");
   label=label+a+",";
}

本來在sql中有可以拼接字串的函式,就是可以用sql函式把多條標籤拼到一起,存入一個欄位值中,就是使用concat函式,用法是concat(欄位名,字串),還可以按指定格式拼接concat_ws(“拼接符”,欄位名,字串),但是這個函式有長度限制,所以這裡我是直接用的java的字串拼接。

步驟4:將變數label存入到對應word的標籤欄位,我是根據ID來對應更新的

" UPDATE 表名 set label ='" + label + "'WHERE id ='" + id + "'";

完美over