I am looking to rename all files from .jpg to .jpeg if they exist in the column.
structure:
- tables: table1, table2, ...
column1 | column2 |
---|---|
image1.jpg | id1 |
image2.jpg | id2 |
image3.jpeg | id3 |
id4 |
Change image1.jpg to image1.jpeg in table1, column1 for the entire column, where some rows may not have the image and some files may already be in the jpeg format
I am very new to mysql, and basically only know how to query and change on a one by one basis, So I am also not sure if this can even be done, but I would really appreciate any help.
CodePudding user response:
Use a like
to find all rows where column1 ends in .jpg
. Then use regexp_replace
to change from .jpg
to .jpeg
.
Make sure to escape the .
in the regex else it will be interpreted as "any character" and will match, for example, "foofjpg". You must use \\
because \
is the escape character in strings.
update some_table
set column1 = regexp_replace(column1, '\\.jpg$', '.jpeg')
where column1 like '%.jpg'
CodePudding user response:
UPDATE column value, with use of REPLACE() MySQL function
UPDATE table
SET column = REPLACE(column, '.jpg', '.jpeg')
WHERE column LIKE '%.jpg'
this way you can update column value end with .jpg