ホームページ > バックエンド開発 > PHPチュートリアル > MYSQL でカンマ区切り文字列を正しく削除する方法

MYSQL でカンマ区切り文字列を正しく削除する方法

PHPz
リリース: 2019-02-26 17:25:01
オリジナル
2524 人が閲覧しました


質問:

値 21,11,1,2 のフィールド arrchildid があります
そのうちの 1 つを削除するには、mysql を実行します (推奨される関連する mysql ビデオ チュートリアル: "mysql チュートリアル ")

UPDATE `category` SET `arrchildid`=replace(`arrchildid`,',1','') WHERE `catid`=100
ログイン後にコピー
ログイン後にコピー
ログイン後にコピー

その結果、削除すべきではないものは次のとおりです。何か良い解決策はありますか? ありがとうございます
PHPCMS はこの種のデータ構造を使用していますが、それをどのように処理するのかわかりませんでした。カテゴリが削除または変更された場合、その親カテゴリの arrchildid フィールドを変更する必要があります。

ディスカッションへの返信 (解決策)

UPDATE `category` SET `arrchildid`=replace(concat(`arrchildid`,','), ',1,', '') WHERE `catid`=100
ログイン後にコピー

値 21,11,1,2 のフィールド arrchildid があります
そのうち 1 つを削除して mysql を実行したいです

UPDATE `category` SET `arrchildid`=replace(`arrchildid`,',1','') WHERE `catid`=100
ログイン後にコピー
ログイン後にコピー
ログイン後にコピー

その結果、削除すべきでないものも削除されてしまいました。何か良い解決策はありますか?
PHPCMS はこのようなデータ構造を採用しています。どのように処理されているのか分かりませんでした。カテゴリが削除または変更された場合、その親カテゴリの arrchildid フィールドを変更する必要があります。
phpmyadmin でこのステートメントを実行するとエラーが発生しました。また、arrchildid の値が 21,2,11,1 の場合は置き換えることができません。より良い解決策はありますか?

フィールド arrchildid の値 21, 11,1,2
このうち 1 つを削除して mysql を実行したい

UPDATE `category` SET `arrchildid`=replace(`arrchildid`,',1','') WHERE `catid`=100
ログイン後にコピー
ログイン後にコピー
ログイン後にコピー

結果、削除してはいけないものも削除されてしまう何か良い解決策はありますか? ありがとうございます
PHPCMS はこの種のデータ構造を使用していますが、それをどのように処理するのかわかりませんでした。カテゴリを削除または変更する場合は、その親カテゴリの arrchildid フィールドを変更する必要があります。
phpmyadmin でこのステートメントを実行するとエラーが発生しました。また、arrchildid の値が 21,2,11,1 の場合、置き換えることはできません。より良い解決策はありますか?

理由がわからないので、手動で入力する必要があります。もう一度入力した後、SQL にエラーはありません


ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート