Замена подстановочного знака в MySQL - PullRequest
1 голос
/ 09 апреля 2020

Я использую это для замены текстов в таблице в MySQL

UPDATE `nametable` SET post_content = REPLACE(post_content,'XoldtextX','XnewtextX');

Но я не знаю, возможно ли использовать подстановочные знаки для использования этой функции замены.

У меня есть несколько текстов, таких как:

class="alignnone size-full wp-image-4071"

class="alignnone size-full wp-image-1762"

class="alignnone size-full wp-image-8329"

, которые я хотел бы изменить.

Но я не знаю, как создать правило для управления подстановочными знаками, поскольку я хотел бы изменить текст, какой бы ни был номер. Примерно так:

class="alignnone size-full wp-image-XXXX"

Не знаю, могу ли я использовать что-то подобное с функцией замены, или мне нужно сделать что-нибудь другое в MySQL.

Спасибо.

Ответы [ 2 ]

1 голос
/ 09 апреля 2020

В функции MySQL REPLACE нет подстановочных знаков.

Введено в MySQL 8.0 для функции REGEXP_REPLACE. (Недоступно в более ранних версиях.)

Ссылка:

https://dev.mysql.com/doc/refman/8.0/en/regexp.html#function_regexp -Замена

0 голосов
/ 09 апреля 2020

Вы можете сделать что-то подобное, если хотите изменить все тексты. Вы можете изменить числа также с той же техникой, указав c текст и цифры, добавив предложение where. Вы можете изменить ВЛЕВО на ПРАВО или использовать SUBSTRING . См. CONCAT и RIGHT , используемые в этом примере. Что когда-либо подходит вашим данным. Пример, приведенный ниже, сделан для данных, представленных в вопросе.

Схема (MySQL v5.7)

    INSERT INTO nametable (post_content) VALUES 
    ("alignnone size-full wp-image-4071"), 
    ("alignnone size-full wp-image-1762"), 
    ("alignnone size-full wp-image-8329"),  
    ("alignnone size-full wp-image-9837"), 
    ("something-else-9832"),
    ("alignnone NOT wp-image-9943"); 


    UPDATE nametable SET post_content = CONCAT("blank-",RIGHT(post_content,4));

---

**Query #1**

    SELECT * FROM nametable;

| id  | post_content |
| --- | ------------ |
| 1   | blank-4071   |
| 2   | blank-1762   |
| 3   | blank-8329   |
| 4   | blank-9837   |
| 5   | blank-9832   |
| 6   | blank-9943   |

---

Просмотр в DB Fiddle

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...