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