- 1 1. Introduction
- 2 2. Basic Usage of the REPLACE Function
- 3 3. Practical Examples: Replacing a Single String
- 4 4. How to Replace Multiple Strings at Once
- 5 5. Performance and Best Practices
- 6 6. Notes and Common Errors
- 7 7. Summary
- 8 8. Related Information
- 9 FAQ: MySQL REPLACE() Function
- 9.1 Q1. What does MySQL REPLACE() do?
- 9.2 Q2. Is MySQL REPLACE() case-sensitive?
- 9.3 Q3. Does REPLACE() replace only the first match?
- 9.4 Q4. What happens if the substring to replace is not found?
- 9.5 Q5. Can I use REPLACE() in an UPDATE statement?
- 9.6 Q6. How do I replace multiple different strings at once?
- 9.7 Q7. Does REPLACE() work with Japanese or other multi-byte characters?
- 9.8 Q8. Is there any performance risk when using REPLACE()?
- 9.9 Q9. How can I safely run a large REPLACE update in production?
- 9.10 Q10. What is the difference between REPLACE() and REGEXP_REPLACE()?
1. Introduction
Introduction
In database management, it is often necessary to replace part of your data. For example, there are many situations where you need to replace a specific string with a new one, such as changing product names or updating addresses. By using MySQL’s REPLACE function, you can perform these replacement tasks efficiently. In this article, we will explain everything from the basics to advanced usage of the REPLACE function in detail.
Purpose of This Article
The goal of this article is to help you learn the basic usage of MySQL’s REPLACE function and apply it in real database operations. Through this article, you will understand a wide range of REPLACE use cases, from simple string replacements to multiple replacements.
2. Basic Usage of the REPLACE Function
REPLACE Syntax and Explanation
The REPLACE function is used to replace a specific substring within a given string with a new string. The syntax is as follows.
REPLACE(str, from_str, to_str)str: The original string to be processed.from_str: The substring you want to replace.to_str: The new substring to replace it with.
This function replaces all occurrences of from_str found in str with to_str. One important point is that this replacement is case-sensitive.
Basic Example
For example, if you want to replace “Java” with “JAVA” in the string “Java and JavaScript is good”, you can use the REPLACE function like this.
SELECT REPLACE('Java and JavaScript is good', 'Java', 'JAVA');The result will be “JAVA and JavaScript is good”. The REPLACE function searches for from_str throughout the specified string and replaces it with to_str.
Case-Sensitive Behavior
Because the REPLACE function is case-sensitive, “Java” and “java” are treated as different strings. For example, in the following query, only “AaA” will be replaced with “REPLACE”.
SELECT REPLACE('aaa AaA aAa aaA', 'AaA', 'REPLACE');In this case, “aaa” and “aAa” remain unchanged, and only “AaA” is replaced. Understanding this behavior is important when using the REPLACE function.
3. Practical Examples: Replacing a Single String
Example 1: Simple String Replacement
If you want to replace the string “old product” in a product name with “new product”, you can use the REPLACE function as follows.
SELECT REPLACE('This is an old product', 'old product', 'new product');When you run this query, you will get the result “This is a new product”. The REPLACE function replaces all occurrences of from_str in the specified string with to_str.
Example 2: Replacing Multi-Byte Characters
The REPLACE function also supports multi-byte characters such as Japanese. For example, the following query replaces part of a Japanese string.
SELECT REPLACE('This is Minato City', 'Minato City', 'Chuo City');When you run this query, you will get the result “This is Chuo City”. The REPLACE function works correctly even with multi-byte characters.
4. How to Replace Multiple Strings at Once
Nested REPLACE Functions
If you want to replace multiple strings at the same time, you can nest REPLACE functions. For example, to replace “One” with “1”, “Two” with “2”, and “Three” with “3”, you can write the query like this.
UPDATE t_test SET emp = REPLACE(REPLACE(REPLACE(emp, 'One', '1'), 'Two', '2'), 'Three', '3');Nested REPLACE functions are a convenient way to perform multiple replacements in one operation. However, if the nesting becomes too deep, the query may become harder to read. If you need complex replacements, consider other approaches as well.
Using a CASE Expression
If you need to replace strings based on multiple conditions, you can also use a CASE expression. This approach is easier to read and allows more flexible replacements depending on the condition.
UPDATE t_test SET emp = CASE
WHEN emp LIKE '%One' THEN REPLACE(emp,'One','1')
WHEN emp LIKE '%Two' THEN REPLACE(emp,'Two','2')
WHEN emp LIKE '%Three' THEN REPLACE(emp,'Three','3')
ELSE emp
END;The CASE expression is useful for performing replacements based on multiple conditions in a single statement, and it helps when you need to replace data that matches specific patterns.
5. Performance and Best Practices
Impact on Performance
When using the REPLACE function on large datasets, query execution time may become longer. In particular, if you replace strings across many records in an entire table, you should consider execution time and performance impact. Keep the following points in mind to optimize your operation.
- Use indexes: Create indexes when necessary to improve the speed of searching and replacing.
- Run in batches: If you need to replace a large amount of data, avoid processing all records at once. Running the operation in multiple batches can reduce the load on the database.

Recommended Best Practices
When using the REPLACE function, following these best practices will help you handle data efficiently and safely.
- Create a backup: Before performing a large-scale replacement, make a full backup of the database.
- Test first: Before running the query in production, test it in a staging or test environment to confirm you get the intended results.
- Use a WHERE clause: Use a
WHEREclause to limit the operation to specific records and target only the data you actually need.
6. Notes and Common Errors
Case-Sensitivity Issues
Because the REPLACE function is case-sensitive, you may not get the expected results. For example, “Java” and “java” are treated as different strings, so if you want to replace both, you need to use separate REPLACE calls. To avoid case-sensitivity issues, you can also combine REPLACE with LOWER or UPPER to convert the text to lowercase or uppercase before performing the replacement.
Combining with Other Functions
You can also combine the REPLACE function with other string manipulation functions. However, you should fully understand how each function behaves when using them together. For example, combining REPLACE with CONCAT or SUBSTRING may produce unexpected results, so make sure to verify the behavior of your query before running it.
Common Errors and Troubleshooting
Common issues when using the REPLACE function include cases where the target substring cannot be found, or where unintended parts of the string are replaced. To avoid these problems, check the data and strings you are working with in advance, and create a backup if necessary. Also, always run the query in a test environment first to confirm it works as intended.
7. Summary
The REPLACE function is a very useful and powerful tool for string manipulation in MySQL. From basic usage to methods for replacing multiple strings at once, it supports a wide range of operations and contributes to efficient database management. However, you should pay attention to case sensitivity, performance impact, and how it behaves when combined with other functions.
By using the REPLACE function properly, you can improve the efficiency of database operations and maintain data consistency and integrity. Use the techniques introduced in this article to perform MySQL string manipulation more effectively.
8. Related Information
Other String Functions
Here are some other string manipulation functions that can be used together with the REPLACE function.
- CONCAT: Combines multiple strings. It is useful when you want to append additional text after performing a replacement with the REPLACE function.
- SUBSTRING: Extracts part of a string. You can combine it with REPLACE to modify or remove a specific substring.
- TRIM: Removes extra spaces from the beginning and end of a string. It helps when you want to clean up unnecessary whitespace before using REPLACE.
Links to Related Articles
In addition to the REPLACE function, the following articles are also helpful for learning MySQL string manipulation.
- List of MySQL String Functions
- How to Optimize a Database in MySQL
- How to Use MySQL CASE Statements (Examples and Advanced Use)
By referring to these resources, you can further improve your MySQL string manipulation skills.
FAQ: MySQL REPLACE() Function
Q1. What does MySQL REPLACE() do?
MySQL REPLACE() replaces all occurrences of a specified substring within a string with another substring. It is commonly used to clean up or update text data such as product names, addresses, and labels.
Q2. Is MySQL REPLACE() case-sensitive?
Yes. REPLACE() is case-sensitive, meaning it treats 'Java' and 'java' as different strings. If you need a case-insensitive replacement, consider converting the string using LOWER() or UPPER() before applying REPLACE().
Q3. Does REPLACE() replace only the first match?
No. REPLACE() replaces all matching occurrences of the target substring in the input string.
Q4. What happens if the substring to replace is not found?
If the target substring does not exist in the input string, REPLACE() returns the original string unchanged.
Q5. Can I use REPLACE() in an UPDATE statement?
Yes. REPLACE() is often used in UPDATE statements to modify stored text values in a table. For large updates, it is recommended to test first and limit rows using a WHERE clause.
Q6. How do I replace multiple different strings at once?
You can replace multiple strings by nesting REPLACE() calls, such as REPLACE(REPLACE(...), ...). Another approach is using a CASE expression when replacements depend on conditions.
Q7. Does REPLACE() work with Japanese or other multi-byte characters?
Yes. REPLACE() works correctly with multi-byte characters, including Japanese, as long as your database/table/connection character set is configured properly (commonly utf8mb4).
Q8. Is there any performance risk when using REPLACE()?
Yes. Running REPLACE() on large datasets (especially across many rows) can be slow and may increase database load. For better performance, run updates in batches, test in a staging environment, and apply filters with WHERE.
Q9. How can I safely run a large REPLACE update in production?
Before running a large replacement, take a full backup, test the query in a non-production environment, and consider executing the update in smaller batches. Always confirm the affected rows using a SELECT preview first.
Q10. What is the difference between REPLACE() and REGEXP_REPLACE()?
REPLACE() performs a simple substring replacement. If you need pattern-based replacements using regular expressions, use REGEXP_REPLACE() (available in newer MySQL versions).

