2016-04-07 7 views
1

これは私が何度も答えられていることを知っている質問です、私の特定のケースで何か不思議なことが起きているに違いありません。 Title、Filename、Idの列があるところにテーブルが設定されています。SQLの検索と置換のSQL構文エラー

ファイル名の列にある\ myimages \ PICS \のすべてのインスタンスをimages/images /に置き換える必要があります。何らかの理由で

以下のコードは私が最後に試したものですが、運はありません。それは添付のスクリーンショットを私に投げつけ続けます。 http://screencast.com/t/dd7n07Cjsこれに関するどんな方向性も大変ありがたいです。前もって感謝します!!!

UPDATE ez_images 
SET FILENAME = REPLACE(FILENAME, 'C:\myimages\PICS\', 'images/images/') 
; 
+0

多分あなたは '\\' – Seblor

+0

をエスケープする必要があります。バックスラッシュを使用することは、MySQLのリテラルバックスラッシュを意味するものではなく、例えば次の文字を引用符で囲むことで、 SELECT 'O \' Connor'' –

+0

ファイル名の内容のサンプルと入手したい結果を表示してください。 – scaisEdge

答えて

0

あなたはこの

UPDATE ez_images 
SET filename = REPLACE(FILENAME, 'C:\myimages\PICS\\', 'images/images/') 
WHERE filename LIKE '%C:\myimages\PICS\\%'; 
+0

です。これはうまくいった!!!! **大変ありがとうございました!**誰もがここで1トンを助けました! – asare

+0

回答が正しい場合は、受け入れ済みとしてマークしてください – scaisEdge

0

\を使用する必要がありますは、MySQLのエスケープ文字である、the documentationを参照してください。あなたの場合は、最初の文字列の最後の一重引用符が文字列の一部であり、 "C:\ myimages \ PICS"文字列の終わりの引用符ではないことを意味します。でもstackoverflowのコードハイライトは適切に文字列をハイライト表示していない理由でもあります

UPDATE ez_images 
SET FILENAME = REPLACE(FILENAME, "C:\myimages\PICS\', "images/images/") 
        start of string^     end^^    ^start of another string 
                 |some code that doesn't conform to the syntax 

:あなたはこの(違いを強調するために使用される二重引用符を)やっているように、サーバーにそれが見えます。