2016-08-17 2 views
0

phpmyadminで検索/置換に問題が発生しました。私はこれがデータベースのURLのスラッシュをエスケープするバックスラッシュと関係しなければならないと思っています。クエリのバックスラッシュを正しく考慮していないかエスケープしていません。https:/ /を検索し、phpMyAdminを使用してhttp:/ /に置き換えてください。

URLにスラッシュをエスケープしたデータは、meta_value列にwpiv_postmeta表に次のように格納されます。

(more data) [{"ddl-repeat-id":"4","logo":"https:\/\/example.com\/uploads\/2016\/01\/mypng.png"} (more data) 

を私はURLでsを削除する必要があります。私は使用しています

しかし、私はphpMyAdminでそれをシミュレートするときに一致する行がありません。

そして、それはあまりにも貪欲だので、私はこれを実行しない:

UPDATE wpiv_postmeta SET meta_value = replace(meta_value, 'https:', 'http:'); 

は、私は私のUPDATEクエリでスラッシュをエスケープまたはアンエスケープするにはどうすればよいですか?クエリ文字列の処理中にSQLパーサは、エスケープの1つのレベルを取り除くため、

答えて

2

あなたは、ダブルエスケープする必要があります。

SELECT ... WHERE foo LIKE '%\a%' // find any 'a' in the db 
SELECT ... WHERE foo LIKE '%\\a%' // find any '\a' in the db 

は、だから、

... REPLACE(meta_evalue, 'http:\\/\\/', 'http://') ... 
+0

ああ、面白い必要があり、非常にしたいです知っておいてよかった。だから、phpmyadminでは、クエリがhttps:\\\\/\\\\ /またはより多くの\と試行されているのがわかりました。勉強中です。ありがとう! – BlueDogRanch

関連する問題