MySQL REPLACE() функцията ви позволява да замените всички поява на подниз с друг низ. Позволява ви да правите неща като заменяне на всички поява на една дума с друга и т.н.
Тази статия демонстрира използването му.
Синтаксис
Ето как върви синтаксисът:
ЗАМЕНИ(стр,от_стр,до_стр)
Където str е низът, който съдържа подниз/ите. from_str е поднизът, който искате да замените с друг низ. И to_str е новият низ, който ще замени стария низ.
Пример
Ето един основен пример:
SELECT REPLACE('Котки и кучета и котки и зайци', 'и', 'или') КАТО Резултат; Резултат:
+--------------------------------+| Резултат |+---------------------------------+| Котки или кучета или котки или зайци |+---------------------------------+
В този случай просто разменяме думата and с думата or . Тъй като имаше три срещания на тази дума, и трите бяха заменени.
Чувствителни към регистъра
Важно е да запомните, че REPLACE() функцията е чувствителна към малките букви.
Пример:
SELECT REPLACE('Котки и кучета, котки и зайци', 'котка', 'бълха') КАТО Резултат; Резултат:
+-------------------------------------+| Резултат |+-------------------------------------+| Котки и кучета, бълхи и зайци |+----------------------------------------------+
В този случай само един екземпляр на cat е заменен, защото само една инстанция е имала правилния случай. Първият екземпляр имаше главни букви C така че не съвпада.
Премахване на подниз
Можете също така да премахнете изцяло подниз, просто като замените подниз с празния низ ('' ):
SELECT REPLACE('https://www.database.guide', 'www.', '') КАТО резултат; Резултат:
<пред>+-----------------------+| Резултат |+-----------------------+| https://database.guide |+-----------------------+Препоръка
Друг (може би по-безопасен) начин да направите това е да включите част от заобикалящия текст, след което премахнете ненужната част:
ИЗБЕРЕТЕ REPLACE('https://www.database.guide', 'https://www.', 'https://') КАТО резултат; Резултат:
<пред>+-----------------------+| Резултат |+-----------------------+| https://database.guide |+-----------------------+
Това предпазва от неволно премахване на подниз, който не трябва да се премахва. Например, ако имаме URL като https://bestwww.com , което по невнимание би се превърнало в https://bestcom без предпазните мерки.
Същата предпазна мярка може да се приложи в случаите, когато заменяте текст (а не просто го премахвате). Например това:
SELECT REPLACE('Земя на котки, кучета и пясък', ' и ', ' или ') КАТО Резултат; Резултат:
+------------------------------+| Резултат |+------------------------------+| Земя на котки или кучета или пясък |+------------------------------+
В този случай добавих интервал преди и след подниз и неговия заместващ текст.
Ако не бях направил това, щях да свърша с това:
SELECT REPLACE('Земя на котки, кучета и пясък', 'и', 'или') КАТО Резултат; Резултат:
+----------------------------+| Резултат |+----------------------------+| Лор от котки или кучета или сор |+----------------------------+