• ベストアンサー
  • すぐに回答を!

phpmyadminで条件付きの検索置換クエリー文

mysql初心者です。 phpmyadmin で検索と置換のクエリ文の書き方に関して質問させて頂きます、宜しくお願いいたします。 データベース: koneko_nyan テーブル: wp_postmeta フィールド:meta_id、post_id、meta_key(varchar(255))、meta_value(longtext) があります。 フィールドmeta_valueの中の"お魚"という文字列を"焼き魚"に置き換えたい。 ただし、meta_valueフィールド全体ではなくて、meta_keyフィールドに"koubutsu"という文字列が含まれている行のmeta_valueに対してだけ置き換えを実行したいと考えています。 この場合、どのようなクエリを送れば、うまく置換できるのでしょうか? 詳しい方いらっしゃいましたら、ご教示頂きたく存じます。

共感・応援の気持ちを伝えよう!

  • 回答数2
  • 閲覧数850
  • ありがとう数1

質問者が選んだベストアンサー

  • ベストアンサー
  • 回答No.2
  • yambejp
  • ベストアンサー率51% (3827/7415)

>「お魚くん」を「焼き魚くん」 であれば、REPLACEを使うとよいかと UPDATE wp_postmeta SET meta_value=REPLACE(meta_value,'お魚','焼き魚') WHERE meta_key LIKE '%koubutsu%'; ただし絞り込みを入れた方が効率的かもしれないのでこっちの方がよいかも UPDATE wp_postmeta SET meta_value=REPLACE(meta_value,'お魚','焼き魚') WHERE meta_value LIKE '%お魚%' AND meta_key LIKE '%koubutsu%';

共感・感謝の気持ちを伝えよう!

質問者からのお礼

ありがとうございました! うまくいきました!

関連するQ&A

  • 検索と置換でチェックを外すことはできないですか?

    アクセスのYesno型のフィールドで 検索と置換でチェックを外すことはできないですか? チェックが入った状態で 検索する文字列:-1 置換後の文字列:0 にしましたが、何も起こりませんでした。 こういう時は更新クエリをするしかないのでしょうか?

  • テーブルを使った置換

    Access2002 Accessでクエリ実行時に特定の文字列を置換したいと思っています。 今までは置換する文字列が1つだけだったので、replace関数を使って直接置換する文字列を書いていたのですが、置換する文字列が今後増えてきそうなのでテーブルで管理したいと思っています。 置換用テーブル 元 ,置換後 000022,002078 000218,002403 000447,002703 クエリは単純な選択クエリなのですが、上記のようなテーブルを使ってクエリ実行時に文字を置換する方法がわかりません。 よろしくお願いします。

  • Excelの置換で教えてください。

    Excelの置換機能を使用し、以下のように設定して置換を行いました。 検索前の文字列:80,80,VALUE(F7) 置換後の文字列:80,80,VALUE(MID(F7,2,9)) 結果として以下の様に置き換わりました。 =IFERROR(IF(F7<>"",IF(LEFT(F7,1)="*",IF(VALUE(MID(F7,2,9))>80,80,VALUE(F7)),IF(VALUE(F7)>60,60,VALUE(F7))),IF(E7<>"",VALUE(E7),"")),"") ↓ =IFERROR(IF(F7<>"",IF(LEFT(F7,1)="*",IF(VALUE(MID(F7,2,9))>80,80,VALUE(MID(F7,2,9)),IF(VALUE(F7)>60,60,VALUE(F7))),IF(E7<>"",VALUE(E7),"")),"") このセル1つのみであればこれで完了ですが、 検索前の文字列:80,80,VALUE(F7) 置換後の文字列:80,80,VALUE(MID(F7,2,9)) この★F7★の部分が異なる内容のセルが膨大にあるので 一括で置換できる方法を探しています。 いい方法がありましたら教えてください。

その他の回答 (1)

  • 回答No.1
  • yambejp
  • ベストアンサー率51% (3827/7415)

>"お魚"という文字列を"焼き魚"に置き換えたい。 これはずばり「お魚」という文字のものをだけを換えればいいのか たとえば「お魚くん」を「焼き魚くん」のように語句を含むものの 該当部分だけをかえるのかによって処理が異なります。 単純にかえるだけなら UPDATE wp_postmeta SET meta_value='焼き魚' WHERE meta_value='お魚' AND meta_key LIKE '%koubutsu%'; 的な処理になるでしょう

共感・感謝の気持ちを伝えよう!

質問者からの補足

ありがとうございます! まさに、「お魚くん」を「焼き魚くん」のように語句を含むものの該当部分だけをかえたいと考えております。 ご教示頂けましたら幸いです!

関連するQ&A

  • クエリーとは

    サーブレットでencodeURLをすると URLに;jsessionid=<セッションID>という 文字列が付加されますが、この文字列 はよくある&a=b&c=dのようなクエリー文字列の一種 なのでしょうか? それとも違うものでしょうか?

  • Access2010更新クエリについて

    こんにちは。Access2010を使用し更新クエリをかけたいと思います。 テーブル名、TABLE。対象フィールド名「ID」となります。 やりたいことは、IDには文字列が入っています。その文字列を下記の ルールによって更新をかけたいと思っています。 文字列が7桁以下なら頭に0を付けて8桁にする。 文字列が9桁以上12桁以下なら頭に0を付けて13桁にする。 文字列が8桁なら何もしない(そのまま)。 文字列が13桁なら何もしない(そのまま)。 14桁以上であるならば何もしない(そのまま)。 下記の関数を作り、「レコードの更新」エリアに埋め込みアップデートをしようとすると 意図した更新になりません。 IIF(LEN(TRIM([id]))<=8,FORMAT(TRIM([id]),"00000000"),FORMAT(TRIM([id]),"0000000000000")) どのような関数を組めば、良いかお教え頂けませんでしょうか? よろしくお願い致します。

  • Word2003の検索・置換について

    検索・置換のダイアログボックスを使い、 書式がフォントやスタイル(太字・斜体) が設定されている文字を、 太字に置換えようと思い、 検索する文字列に設定し、 置換後の文字列をクリックし、置換ようとしたところ、 なぜか、検索する文字列の書式に設定がなってしまいました 何回か試していると、ちゃんと設定がなるときもあるのですが、 ならないときもあります。 どうすれば確実に設定を一回でできるでしょうか?

  • あいまい検索について

    お世話になっております。 早速ですが、SQLをどう書けばいいかで悩んでおります。 テーブルの文字列(varchar)の列をl検索します。 テーブルA------------------------ ID value 1 abc 2 defghijklmnopqrstu 3 vwxyzabcdefg 上記のようなテーブルです。 このテーブルのvalue列で、以下の文字列をもっともたくさん 含むものから優先で取得したいのです。 "abc"、"fg"、"vw"、"pqr"、"xyz" この場合、 IDが1の列は"abc" IDが2の列は"fg"、"pqr" IDが3の列は"fg"、"abc"、"xyz" のようにそれぞれ1個、2個、3個と含んでいますから。 SQLの結果セットにIDが3,2,1といった順番で含まれるように 取得したいのです。 where句にlikeを使うくらいはわかるのですが、それから先が 思い浮かびません。 どうかお知恵をおかしください。

    • ベストアンサー
    • MySQL
  • Excel2000ですが検索置換の問題です。

    検索する文字列を「香川?」とすると、殆んどは上手くいくのですが 12行目が大川市高松市と市が2つ続いてしまいます。 また14行目が高松市高松市となってしまいます。 一発ですんなりと解答のようにするには、どのような文字列を検索文字列や置換後の文字列にすればいいのでしょう? 宜しくお願い致します。

  • アクセス クエリー 抽出条件について

    アクセス クエリー 抽出条件について たとえば文字列で5桁の仕入先コードフィールドが有るとします。で1と3と5を除くレコードを表示させたいときは 抽出条件をどの様に設定したらよろしいでしょうか?

  • ACCESS クエリ 条件以外のレコードを抽出するには?

    クエリで、抽出条件(文字列)以外のレコードを全て抽出したいのですが、うまくいきません。 そのフィールドには空白もあり、 抽出条件を「Not In ("A","B")」とすると、 "A","B"以外の文字列が抽出され、空白のものは抽出されません。 「"A"や"B"でない、他の全てのレコードを抽出したい」という場合、どのようにすればよいのでしょうか?

  • 【アクセス】ハイパーリンク アドレスと表示文字列のどちらも置換したい

    テーブル1のフィールド「アドレス」をハイパーリンク型にし、 レコードに 表示文字列:C:\Users アドレス:C:\Users と入れています。 ここで 置換と検索ダイアログを呼び出して 検索する文字列:C:\ 置換後の文字列:D:\ にしてすべて置換をおしても 表示文字列しか置換されません。 表示文字列もアドレスも同じように置換するにはどうすればいいのでしょうか? よろしくお願い致します。(当方アクセス2003です)

  • Excelの置換がうまく出来ません。

     Excelである文字列を検索しようとすると、ちゃんと検索できるのですが、それを別の文字列に「置換」しようとすると「一致するデータが見つかりません」のメッセージが出て置換できません。「一致するデータ」がちゃんと存在するにもかかわらずにです。  ところが「すべて置換」にするとちゃんとすべてその文字列が指定の文字列に置換出来てしまいます。  即ち、ちゃんと置換すべき文字列が存在するにもかかわらず「置換」だけが実行されないのです。  これってどうゆうわけでしょうか?  私としては、「すべて置換」ではなく、一つ一つ確認しながら文字列の置換を行いたいのですが・・・私のやり方が悪いのでしょうか?  尚、ここで言う「文字列」とは狭い意味のそれではなく、数値・記号を含む全ての文字と言う意味です。

  • エクセルの置換について

    すぐ教えていただきたいんです! エクセルの文字列(この文字列は行ごとにいろんな文字列なんですがその前にある決まった文字列を付け加えたい場合はどのようにしたらいいでしょうか? たとえば置換だと、行に入力したその文字列1パターンしか置換してくれないんですよね? なんだかつたない説明ですいませんが、お分かりになる方教えてください!