0

在找到字符串后,我试图从文本字段中删除部分字符串。我要删除的将始终位于字符串的末尾,不会完全相同,但始终以相同的字符串 < iframe 开头(< 和 i 之间没有空格,我只是把它放在那里,因为它不会打印如果我不这样做)。

在我姐夫的帮助下,我能够确定如何对其进行编码以运行指定的一行。但是我们现在无法弄清楚如何为所有行运行它。到目前为止,我们拥有的一行代码如下:

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 回答