mysql > why replace command is not working on strings coming from json encoded?
As a primer it looks like the data is being stored with the escape character \ backslash to allow the WordPress server to automatically use the data in the engine itself. 

You would have to double the back-slashes to find and replace the string.

You can verify this via dbfiddle.uk.

If you run your Search String against a MySQL 8.0 instance like this:

 select 'http:\/\/dev.example.com\/example\/'


... then you will receive this:


http://dev.example.com/example/



Reference: db&lt;>fiddle for Question 255169 (db&lt;>fiddle)

This isn't what is stored in the database and thus will no be found.

Solution

The solution is to double the (MySQL) escape character \ into:

select 'http:\\/\\/dev.example.com\\/example\\/'


...which returns this:


http:\/\/dev.example.com\/example\/



Reference: db&lt;>fiddle for Question 255169 (db&lt;>fiddle)