0

静的ではないデータベースから特定の「テキスト」を削除することは可能ですか?
静的テキストの場合、「静的テキスト」を「」に置き換えただけです。
実際には、「静的テキスト1 *静的テキスト2」を削除するコマンドが必要なだけなので、
テキスト1からテキスト2までのすべて。
Text1 と text2 は静的ですが、その間のすべてが変更されます。

手伝ってくれてありがとう

4

2 に答える 2

0

私の理解が正しければ、テーブル内のテキスト値から と の間にUPDATEあるテキストを削除したいのですが、実際の行はそのままにしておきます。text1text2

その場合は、 と の組み合わせを使用して、次のことをSUBSTRING()実行LOCATE()できUPDATEます。

UPDATE your_table SET
    field = 
        CONCAT(
            SUBSTRING(field, 1, LOCATE('text1', field) + 5),
            SUBSTRING(field, LOCATE('text2', field))
        )
WHERE
    field LIKE '%text1%text2%'

これはfield、テキスト "text1" (およびテキスト自体を含む) までの列の最初の部分を取得し、次に、テキストの(およびテキストを含む)すべてtext1の列から 2 番目の部分文字列を取得します。fieldtext2

これら 2 つの値の間のテキストを「変更」したい場合、たとえば を持っていてtext1 some-value text2、それを にしたいtext1 new-thing text2場合、上記のクエリを使用して、新しいテキストを真ん中に置くことができます。

UPDATE your_table SET
    field = 
        CONCAT(
            SUBSTRING(field, 1, LOCATE('text1', field) + 5),
            ' new-thing ',
            SUBSTRING(field, LOCATE('text2', field))
        )
WHERE
    field LIKE '%text1%text2%'
于 2012-12-14T15:45:50.633 に答える
0

「static text1」の後に何かが続き、その後に「static text2」が続くパターンを見つけて、行全体を削除することを求めていると仮定して、試してみてください(myTableandmyRowを値に置き換えてください):

SELECT * FROM `myTable` WHERE `myRow` LIKE 'static text1%static text2';

削除する行が返された場合は、delete コマンドを実行できます。

DELETE FROM `myTable` WHERE `myRow` LIKE 'static text1%static text2';
于 2012-12-14T15:43:17.030 に答える