Funkcja MySQL REPLACE()
Ostatnia aktualizacja 26 lutego 2020 08:08:23 (UTC/GMT +8 godzin)
Funkcja REPLACE()
Funkcja MySQL REPLACE() zastępuje wszystkie wystąpienia podłańcucha w ciągu znaków.
Syntaktyka:
REPLACE(str, find_string, replace_with)
Argumenty
Nazwa | Opis |
---|---|
str | Ciąg znaków. |
find_string | Ciąg, który występuje jeden lub więcej razy w ciągu str. |
replace_with | Ciąg, który będzie zastępował za każdym razem, gdy znajdzie find_string wewnątrz str. |
Syntaktyczny schemat:
MySQL wersja: 5.6
Prezentacja wideo:
Twoja przeglądarka nie obsługuje wideo HTML5.
Przykład funkcji MySQL REPLACE()
Poniższa instrukcja MySQL zastępuje za każdym razem, gdy znajdzie 'ur' w obrębie 'w3resource' przez 'r'.
Kod :
SELECT REPLACE('w3resource','ur','r');
Przykładowe dane wyjściowe:
mysql> SELECT REPLACE('w3resource','ur','r');+--------------------------------+| REPLACE('w3resource','ur','r') |+--------------------------------+| w3resorce | +--------------------------------+1 row in set (0.02 sec)
Prezentacja obrazkowa
Przykład funkcji MySQL REPLACE() z klauzulą where
Poniższa instrukcja MySQL zastępuje wszystkie wystąpienia 'K' na 'SA' w kolumnie kraj z tabeli wydawca dla tych wierszy, w których wartością kolumny kraj jest Wielka Brytania.
Kod:
SELECT pub_city,country,REPLACE(country,'K','SA') FROM publisher WHERE country='UK';
Przykładowa tabela: publisher
Przykładowe dane wyjściowe:
mysql> SELECT pub_city,country, -> REPLACE(country,'K','SA') -> FROM publisher -> WHERE country='UK';+-----------+---------+---------------------------+| pub_city | country | REPLACE(country,'K','SA') |+-----------+---------+---------------------------+| London | UK | USA | | Cambridge | UK | USA | +-----------+---------+---------------------------+2 rows in set (0.05 sec)
Skrypt PHP
<!doctype html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1"><title>example-replace-function - php mysql examples | w3resource</title><meta name="description" content="example-replace-function - php mysql examples | w3resource"><link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.5/css/bootstrap.min.css"></head><body><div class="container"><div class="row"><div class="col-md-12"><h2>A list of Publishers those who belong to USA. Right column shows the name of the publisher enclosed with single quotes:</h2><table class='table table-bordered'><tr><th>Publishers city</th><th>Publishers country</th><th>Value of Publishers country where string 'k' is replaced with 'sa':</th></tr><?php$hostname="your_hostname";$username="your_username";$password="your_password";$db = "your_dbname";$dbh = new PDO("mysql:host=$hostname;dbname=$db", $username, $password);foreach($dbh->query('SELECT pub_city,country,REPLACE(country,"K","SA") as output FROM publisherWHERE country="UK"') as $row) {echo "<tr>";echo "<td>" . $row . "</td>"; echo "<td>" . $row . "</td>";echo "<td>" . $row . "</td>";echo "</tr>"; }?></tbody></table></div></div></div></body></html>
Zobacz przykład w przeglądarce
Skrypt JSP
<%@page contentType="text/html" pageEncoding="UTF-8"%><%@ page import="java.sql.*" %><%@ page import="java.io.*" %><!DOCTYPE html><html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>example-replace-function</title></head><body><%try {Class.forName("com.mysql.jdbc.Driver").newInstance();String Host = "jdbc:mysql://localhost:3306/w3resour_bookinfo";Connection connection = null;Statement statement = null;ResultSet rs = null;connection = DriverManager.getConnection(Host, "root", "datasoft123");statement = connection.createStatement();String Data ="SELECT pub_city,country,REPLACE(country,'K','SA') as output FROM publisher WHERE country='UK'";rs = statement.executeQuery(Data);%><TABLE border="1"><tr width="10" bgcolor="#9979"><td>Publishers city</td><td>Publishers country</td><td>Value of Publishers country where string 'k' is replaced with 'sa'</td></tr><%while (rs.next()) {%><TR><TD><%=rs.getString("pub_city")%></TD><TD><%=rs.getString("country")%></TD><TD><%=rs.getString("output")%></TD></TR><% } %></table><%rs.close();statement.close();connection.close();} catch (Exception ex) {out.println("Cant connect to database.");}%></body></html>
MySQL: Znajdź i zamień dane
Mamy tabelę o nazwie test z następującymi rekordami :
mysql> SELECT * FROM test;+-----------+| test_char |+-----------+| Abcd || Wxyz || Scott || Robin |+-----------+4 rows in set (0.00 sec)
Aby znaleźć i zamienić 'Scott' na 'Sidhu' możesz użyć następującej instrukcji MySQL :
mysql> UPDATE test set test_char = replace(test_char, 'Scott', 'Sidhu');Query OK, 1 row affected (0.04 sec)Rows matched: 4 Changed: 1 Warnings: 0mysql> SELECT * FROM test;+-----------+| test_char |+-----------+| Abcd || Wxyz || Sidhu || Robin |+-----------+4 rows in set (0.00 sec)
Wszystkie funkcje łańcuchowe
Poprzednie: REPEAT
Następne: REVERSE