4

サイトで販売されているアイテムの説明を含むフィールドを持つテーブルがあります。

私たちの無限の知恵で、サイトを最初に開始したとき、リンクに製品情報が含まれているため、それぞれ少しずつ異なる Facebook の Like ボタンのコードを説明に貼り付けました。現在、コードが含まれるアイテムは約 400 個あります。

これは私が扱っているものの例です:

-ホイップアップした、ふわふわのチョコレート・オン・チョコレートの味。チョコレートをより手軽に楽しむ方法-
脂肪分を 45% 削減


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 :80px;" 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
    )
);

理解を深めるために、<との間のスペースを削除しませんでしたiframe

このスレッドもご覧ください。

レコードから HTML タグを削除する

ただし、これはタグのみを削除し、タグ間の<tag>テキストを保持することについての議論</tag>です。<iframe>とにかく、 と の間に何もないので、それはあなたのためになり</iframe>ます。

于 2012-10-30T05:08:27.727 に答える
1
  1. REPLACE('<iframe%','<iframe%',' ')' ' だけが返されます。最初の引数を 2 番目の引数で検索し、3 番目の引数に置き換えます。
  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 に答える