4

我有一个表格,其中包含一个字段,其中包含我网站上出售的商品的描述。

在我们无限的智慧中,当我们第一次启动该网站时,我们将 Facebook Like 按钮的代码粘贴到描述中,每个都略有不同,因为链接中有产品信息。我们现在有大约 400 个项目,其中包含代码。

这是我正在处理的一个例子:

- 搅起,蓬松的巧克力巧克力口味;享受巧克力的更轻松方式
- 减少 45% 脂肪


< iframe src="http://www.facebook.com/plugins/like.php?href=http%3A%2F%2Fwww.oursite.com%2Findex.php% 3Fmain_page%3Dproduct_info%26cPath%3D33_36%26products_id%3D106&layout=standard&show_faces=true&width=450&action=like&colorscheme=light&height=80" scrolling="no" frameborder="0" style="border:none; overflow:hidden; width:450px; height :80 像素;" allowTransparency="true"></iframe>

我想删除<iframe过去的一切。我一直在寻找使用 REPLACE 和/或 LEFT 的示例,但找不到我需要的东西,因为我不太精通 SQL 语言。

它总是在 products_description 字段的末尾,所以我不需要担心在它之前保存任何东西,只在它之前。

我能想到的最好的是

SELECT LEFT(REPLACE('<iframe%','<iframe%',' '),0)

但这似乎不起作用。

感谢您为此提供的任何帮助,因为与编辑每个描述相比,我花费的时间要少得多。

更新:在尝试了许多建议的变体之后,仍然没有找到答案。它运行,但不对列进行编辑。

在另一个网站上找到它后,我也尝试了这个。相同,但认为它可能会让某人知道如何进行:

select left(`products_description`,instr('<iframe',`products_description`)-1) FROM products_description
4

3 回答 3

2
SELECT 
trim( -- trim removes spaces before and after given string
    left(
        'some text < iframe', 
        locate('< iframe', 'some text < iframe') - 1
    )
);

为了更好地理解,我没有删除 and 之间<的空格iframe

你也可以看看这个线程:

从记录中删除 HTML 标记

但这是关于仅删除标签以及在标签之间保留<tag>文本的讨论</tag>。无论如何,它会为你服务,因为你在 and 之间没有任何<iframe>东西</iframe>

于 2012-10-30T05:08:27.727 回答
1
  1. REPLACE('<iframe%','<iframe%',' ')只会给你'' - 它在第一个参数中搜索第二个参数并用第三个参数替换它。
  2. LEFT(somestring, 0)会给你0个字符的字符串
于 2012-10-30T05:00:17.043 回答
0

尝试这个:

select substr(your_raw_string, 0, instr(your_raw_string, '<iframe') -1)
from your_table
于 2012-10-30T05:20:00.237 回答