2012-11-07 43 views
0

我試圖從文本字段中刪除部分字符串,找到字符串後。我想刪除的東西總是在字符串的末尾,不會相同,但總是以相同的字符串開頭,< iframe(<和我之間沒有空格,因爲它不會打印如果我不)。將SQL查詢應用於一行,到所有行

在我的姐夫的幫助下,我能夠確定如何編寫代碼以運行指定的一行。但是我們現在無法弄清楚如何爲所有行運行它。我們到目前爲止的代碼,一行,低於:

update products_description 
set products_description 
     = (select test 
      from 
      ( 
       select substr(PD.products_description,1,instr(PD.products_description, '<iframe') -1) as test 
       from products_description PD 
       where products_id=36 
      ) as x) 
where products_id=36 

這實際上是一個後續到this線程,在那裏我無法確定一個解決方案。

感謝任何人都可以對此有所瞭解。

編輯:只是想指出,我處理的表和列都命名爲products_description。

+0

好了,很奇怪的查詢,並沒有真正檢驗它,但也許你刪除最後的部分(其中products_id = 36)它會做所有的行?做一個備份,當然可以。 – rednaw

回答

1

嘗試沒有嵌套查詢:

UPDATE products_description 
    SET products_description = SUBSTR(products_description,1,INSTR(products_description, '<iframe') -1) 
    WHERE products_id IN (/* list of ids goes here */) 

要爲整個表運行它,只是離開了WHERE子句。

+0

謝謝你。它讓我們在那裏!我們最初試過'UPDATE products_description SET products_description = SUBSTR(products_description,1,INSTR(products_description,' user1780464

+0

因此,我將其更改爲'UPDATE products_description SET products_description = SUBSTR(products_description,1,INSTR(products_description' iframe')-1) WHERE products_id IN(select products_id FROM( select products_id from products_description PD where PD.products_description like'% user1780464

+0

如果你只是使用'WHERE products_description'(如'% PinnyM

0

你必須從選擇句子進行更新

http://dev.mysql.com/doc/refman/5.0/en/update.html

可能是這樣的:

update products_description as t 
join (select 
      products_id, 
      substr(PD.products_description,1,instr(PD.products_description, '<iframe') -1) as test 
     from products_description PD 
    ) as x 
on x.products_id = t.products_id 
set t.products_description = x.test