'column1'列に構造の複数のレコードがあり、同じ列のタイプを更新したいと思います。
これらのフィールドには、1つのフィールドにのみ、言語、カテゴリレベル、および名前に関する情報が含まれています。
情報は、次のように記号で区切られています。
- ":"(2点)言語をルートで区切る(言語%:トップ/%)
- ルート(Top / level_1)をカテゴリで区切り、category(level_1 / level_2)を別のレベルのカテゴリで区切る "/"(スラッシュ)。
- したがって、FIELDの形式は「language:Top / level/level」になります。
FIELDSに格納されている情報は、2つの異なるソースから取得されます。1つは内部ソースであり、root(Top /)のないもう1つのFIELDSは外部ソースから取得され、SQLで更新する必要があります。
実際のフィールド例:
前
< b>英語< / b>:level / Test / later
後
< b>英語< / b&gt ;: Top / level / Test / later
実際のテーブルの例:
**before** **after**
language0:Top/level_0/name_category language0:Top/level_1/name_category
language1:name_test2/name_category language1:name_test2/name_category
language2:level_1/name_category language2:Top/level_1/level_2/name_category
language3:level_1/level_2/name_category language3:Top/level_1/level_2/name_category
language4:level_1/level_2/level_3/name_category language4:Top/level_1/level_2/level_3/name_category
最初の行はすでに変更されているため、「language%:level_1 /%」で始まるレコードのみを選択する必要があります
table_example1
id **column1**
1 language0:Top/level_1/level_2/level_3/level_4
2 language1:name_test2/etc/
3 language2:level_1/level_2/level_3/level_4
4 language3:level_1/level_2/level_3
5 language3:level_1/level_2
6 language%:level_1/
ノート:
- この例では、次のフィールドのみを更新する必要があります。行ID 3,4,5,6、およびテーブルのcolumn1のみ
- 結果は、行ID 1column1のようになる必要があります
language0:Top/name_test/etc/etc/
。 language1:name_test2/etc/
行ID2column1のフィールドは無視され、異なる形式と格納された異なる情報です。- 2行目を変更しない理由はリンク値が異なります:name_test2(name_test)LIKE'name_test /%'のみ
- この#記号がフィールドに存在しないのは、列の前、列の後に表示されることを示すためだけです。
- FIELDは、次の2つのポイント(:)の後に、式の後にスラッシュ(level_1 /)が続く場合にのみ更新する必要があります。
それ以外の方法で開始する他のレコードは変更しないでください。
これどうやってするの?