0

文字列が見つかった後、テキスト フィールドから文字列の一部を削除しようとしています。削除したいものは常に文字列の最後にあり、同一ではありませんが、常に同じ文字列 < iframe (< と i の間にスペースはありません。印刷されないため、そこに配置します。私がしなければ)。

義理の兄弟の助けを借りて、指定された 1 つの行に対して実行するようにコーディングする方法を決定することができました。しかし、すべての行に対してそれを実行する方法がわかりません。これまでの 1 行のコードは次のとおりです。

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

これは実際には、解決策を特定できなかったこのスレッドのフォローアップです。

これに光を当てることができる人に感謝します。

編集:指摘するだけだと思いますが、私が扱っているテーブルと列は両方ともproducts_descriptionという名前です。

4

2 に答える 2

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句を省略します。

于 2012-11-07T22:19:33.423 に答える
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
于 2012-11-07T22:30:09.030 に答える