2012-10-21 48 views
2

我在'column1'列中有多個記錄,我想更新同一列中的類型。如何使用SQL編輯特定列mysql數據庫中的多個記錄

這些字段僅在一個FIELD中包含有關語言,類別級別和名稱的信息。

  1. 「:」(2個點)由根分離的語言(language%:頂/%)
  2. 「/」(斜槓)分開根(頂

    信息由符號如下分離/ level_1),按類別分類(level_1/level_2)。

  3. 等等領域將具有以下形式:從兩個不同的源的「語言頂部/級/水平」

存儲在字段中的信息來一個是內部和其他字段,而不根(頂/)來自外部源,並且必須由SQL

實例字段進行更新:

之前

& LT; b & GT; Englisch & LT;/B & GT;:水平/測試/後

& LT; b & GT; Englisch & LT;/B & GT;:頂/水平/測試/後

真實的例子表:

**before**           **after** 
language0:Top/level_0/name_category     language0:Top/level_1/name_category 
language1:name_test2/name_category     language1:name_test2/name_category 
language2:level_1/name_category      language2:Top/level_1/level_2/name_category 
language3:level_1/level_2/name_category    language3:Top/level_1/level_2/name_category 
language4:level_1/level_2/level_3/name_category  language4:Top/level_1/level_2/level_3/name_category 

第一行有ALR伊迪改變,所以我們需要只選擇那些以創紀錄的 「語言%:LEVEL_1 /%」

table_example1

id **column1**      

1 language0:Top/level_1/level_2/level_3/level_4 
2 language1:name_test2/etc/ 
3 language2:level_1/level_2/level_3/level_4 
4 language3:level_1/level_2/level_3 
5 language3:level_1/level_2 
6 language%:level_1/ 

注:

  • 只有這些字段必須在更新示例:行ID 3,4,5,6並且表中只有第1列
  • 結果必須與行ID 1列1:language0:Top/name_test/etc/etc/一樣。
  • 第2行第1列中的字段language1:name_test2/etc/將被忽略爲不同的格式並存儲不同的信息。
  • 依據不改變線2是不同的鏈路值:name_test2(name_test)LIKE「name_test /%」僅
  • 這#符號的字段不存在的僅是描繪可以列之前看到,
  • 柱後(:)是完全有表達其次是斜槓(LEVEL_1 /),其啓動,否則不得修改

其他記錄

  • 領域應該只有以下兩點後更新。

    我該怎麼做?

  • +1

    不改變第2行的基礎是什麼?是否在冒號':'後面沒有散列'#'符號?那麼,是否需要將':#'改成':Top /'?如果是這樣,那麼表格「發件人」列需要修改,儘管我已經逐字寫出了製作映射表的內容。 –

    +0

    改寫註釋。第6行不包括語言。請澄清您的標準。如果你在'table_example1'之前完成了你的問題,那麼很明顯 – Sami

    回答

    1
    UPDATE `table_example1` SET `column1` = REPLACE(column1,':name_test/',':Top/name_test/'); 
    

    在使用本查詢之前創建備份。

    +0

    不錯,你救了我的生命,最好的問候,我只有10點要求15投票,稍後即時投票你的答案,Sincerly有美好的一天 –

    相關問題