Mysql
 sql >> база данни >  >> RDS >> Mysql

Как да замените част от низ в MySQL

Проблем:

Искате да замените част от низ с друг низ в MySQL.

Пример:

Нашата база данни има таблица с име motorbike_sale с данни в id , name и part_number колони.

id име номер_част
1 Харли Дейвидсън x 1245-AC2-25
2 Honda CB750-x 012-GK8-A8
3 Suzuki Hayabusa X 798-25-28

Бихме искали да променим частните номера на мотоциклетите, като заменим всички знаци на тирета с наклонени черти.

Решение 1:

SELECT name,
  REPLACE( part_number, '-', '/' ) as new_part_number
FROM motorbike_sale;

Тази заявка връща списък с имена на мотоциклети и нови номера на части. Обърнете внимание на наклонените черти, които са заменили тирета в номерата на частите:

name нов_номер_част
Харли Дейвидсън x 1245/AC2/25
Honda CB750-x 012/GK8/A8
Suzuki Hayabusa X 798/25/28

Дискусия:

Използвайте функцията MySQL REPLACE(), за да замените подниз (т.е. думи, знак и т.н.) с друг подниз и да върнете променения низ. Тази функция приема три аргумента:

  • Низът за промяна. (В нашия пример това е колоната part_number .)
  • Поднизът за замяна (т.е. символът „-“).
  • Поднизът за вмъкване (т.е. символът „/“).

Забележете, че тази функция замества всички поява на подниз в дадения низ или колона. В нашия пример всеки номер_част съдържа три знака за тире, всеки от които е заменен с наклонена черта.

В следващия пример ще заменим всички екземпляри на „x“ в имената на мотоциклети с „10“.

Решение 2:

SELECT id,
  REPLACE( name, 'x', '10' ) as new_name,
  part_number
FROM motorbike_sale
WHERE id>1;

Тази заявка използва клауза WHERE за филтриране на записи за редове с id стойност 2 или по-голяма.

Забележете, че името на мотоциклета Honda е променено от „x“ на „10“, но името на мотоциклета Suzuki не е променено. Защо не? Тъй като REPLACE() е чувствителен към малки и големи букви. Следователно „x“ не е същото като „X“. В този пример „x“ е заменен с „10“, но „X“ е непроменен.

Тази заявка показва новото име на мотоциклета Honda и старото име на мотоциклета Suzuki.

id ново_име номер_част
Honda CB750-10 012-GK8-A8
Suzuki Hayabusa X 798-25-28

  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. ИЗПУСКАНЕ НА БАЗА ДАННИ MySQL

  2. tomcat7 - jdbc източник на данни - Това е много вероятно да създаде изтичане на памет

  3. Функция MySQL SIN() – Връща синуса на число в MySQL

  4. Елиминиране на MySQL Split-Brain в многооблачни бази данни

  5. Като регистри и букви в MySQL