Mysql
 sql >> Baza danych >  >> RDS >> Mysql

Jak zamienić część ciągu w MySQL

Problem:

Chcesz zastąpić część ciągu innym ciągiem w MySQL.

Przykład:

Nasza baza danych zawiera tabelę o nazwie motorbike_sale z danymi w id , name i part_number kolumny.

id imię numer części
1 Harley Davidson x 1245-AC2-25
2 Honda CB750-x 012-GK8-A8
3 Suzuki Hayabusa X 798-25-28

Chcielibyśmy zmienić numery części motocykli, zastępując wszystkie znaki łączników ukośnikami.

Rozwiązanie 1:

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

To zapytanie zwraca listę nazw motocykli i nowych numerów części. Zwróć uwagę na ukośniki, które zastąpiły łączniki w numerach części:

nazwa nowy_ numer_części
Harley Davidson x 1245/AC2/25
Honda CB750-x 012/GK8/A8
Suzuki Hayabusa X 798/25/28

Dyskusja:

Użyj funkcji MySQL REPLACE(), aby zastąpić podciąg (tj. słowa, znak itp.) innym podciągiem i zwrócić zmieniony ciąg. Ta funkcja przyjmuje trzy argumenty:

  • Ciąg do zmiany. (W naszym przykładzie jest to kolumna part_number .)
  • Podciąg do zastąpienia (np. znak „-”).
  • Podciąg do wstawienia (np. znak „/”).

Zauważ, że ta funkcja zastępuje wszystkie wystąpienia podciągu w podanym ciągu lub kolumnie. W naszym przykładzie każdy numer_części zawiera trzy znaki łącznika, z których każdy został zastąpiony ukośnikiem.

W następnym przykładzie zastąpimy wszystkie wystąpienia „x” w nazwach motocykli na „10”.

Rozwiązanie 2:

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

To zapytanie używa klauzuli WHERE do filtrowania rekordów dla wierszy z id wartość 2 lub większa.

Zauważ, że nazwa motocykla Honda została zmieniona z „x” na „10”, ale nazwa motocykla Suzuki nie została zmieniona. Dlaczego nie? Ponieważ REPLACE() rozróżnia wielkość liter. Dlatego „x” to nie to samo co „X”. W tym przykładzie „x” zostało zastąpione przez „10”, ale „X” pozostało niezmienione.

To zapytanie wyświetla nową nazwę motocykla Honda i starą nazwę motocykla Suzuki.

id nowa_nazwa numer części
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. Jak uzyskać aktualny numer sekwencji Auto_Increment dla tabeli MySQL / MariaDB?

  2. Formatowanie wiersza poleceń MySQL za pomocą UTF8

  3. Jak przekonwertować epoch na znacznik czasu mySQL w JAVA

  4. Jak zwrócić wyniki zapytania jako listę oddzieloną przecinkami w MySQL?

  5. Jak uzyskać dane z ostatniego tygodnia w MySQL?