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

Zlokalizuj pozycję tekstu, wyodrębnij tekst i wstaw w nowej kolumnie w MySQL

Możesz wybrać tekst za „Kraj=”, a gdy już masz ten podłańcuch, wybierz tekst przed pierwszym „&”

SELECT SUBSTRING_INDEX(SUBSTRING_INDEX(ColumnA, 'Country=', -1), '&', 1) AS ColumnB
FROM `atable`

Zobacz http://dev.mysql. com/doc/refman/5.6/en/string-functions.html#function_substring-index

Oto test do zademonstrowania:

mysql> SELECT * FROM atable;
+------+------------------------------------------+
| row  | columna                                  |
+------+------------------------------------------+
| Row1 | Lauguage=English&Country=USA&Gender=Male |
| Row2 | Gender=Female&Language=French&Country=   |
| Row3 | Country=Canada&Gender=&Language=English  |
+------+------------------------------------------+

mysql> SELECT SUBSTRING_INDEX(SUBSTRING_INDEX(ColumnA, 'Country=', -1), '&', 1) AS ColumnB FROM atable;
+---------+
| ColumnB |
+---------+
| USA     |
|         |
| Canada  |
+---------+

Twoje pytanie uzupełniające:

INSERT INTO atable VALUES ('Row4', 'Gender=&Language=English');

SELECT `row`, IF(LOCATE('Country=', ColumnA)>0, 
  COALESCE(
    NULLIF(SUBSTRING_INDEX(SUBSTRING_INDEX(ColumnA, 'Country=', -1), '&', 1), ''), 
    'Blank string is not valid!'), 
 'Missing Country!') AS ColumnB     
FROM `atable`

+------+----------------------------+
| row  | ColumnB                    |
+------+----------------------------+
| Row1 | USA                        |
| Row2 | Blank string is not valid! |
| Row3 | Canada                     |
| Row4 | Missing Country!           |
+------+----------------------------+


  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 grupować według miesięcy w MySQL

  2. Jak połączyć się z MySQL na Amazon EC2 z systemu Linux/Mac?

  3. Jak mogę wyszukiwać za pomocą emoji w MySQL za pomocą utf8mb4?

  4. @ Symbol - rozwiązanie dla rekurencyjnego zapytania SELECT w Mysql?

  5. INSERT IGNORE vs INSERT ... NA ZDUPLIKOWANY KLUCZ AKTUALIZACJI