2015-10-08 4 views
4

У меня есть эта таблица:Как отделить один столбец до двух столбцов?

+---------+---------------+------------+ 
| c_data | c_characters | c_numbers | 
+---------+---------------+------------+ 
| abc123 |    |   | 
+---------+---------------+------------+ 
| hb045 |    |   | 
+---------+---------------+------------+ 
| awrg5 |    |   | 
+---------+---------------+------------+ 
| xyz456 |    |   | 
+---------+---------------+------------+ 

Я хочу, чтобы отдельные символы c_data и цифры, затем обновить до c_characters и c_numbers полого
Как я могу обновить поле с запросом?

+0

Вы можете использовать регулярные выражения в запросе сделать это. См. Https://dev.mysql.com/doc/refman/5.1/en/regexp.html для руководства. –

+0

Предыдущее сообщение: http://stackoverflow.com/questions/25401849/how-to-split-the-string-in-one-column-into-two-columns – DTH

+0

@DTH Этот вопрос имеет конкретный символ разделителя. Как бы вы это сделали здесь, где он просто хочет разбить его на алфавитные и числовые части? – Barmar

ответ

2

К сожалению, у MySQL нет (0) REGEXP_REPLACE() function like other databases. Вы можете дать issue 29781 какую-нибудь любовь, если хотите.

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

UPDATE my_table 
SET c_characters = 
    replace(
    replace(
     replace(
     replace(
      replace(
      replace(
       replace(
       replace(replace(replace(c_data, '0', ''), '1', ''), '2', ''), '3', '' 
      ), '4', '' 
      ), '5', '' 
     ), '6', '' 
     ), '7', '' 
    ), '8', '' 
    ), '9', '' 
), 
    c_numbers = 
    replace(v, 
     replace(
     replace(
      replace(
      replace(
       replace(
       replace(
        replace(
        replace(replace(replace(c_data, '0', ''), '1', ''), '2', ''), '3', '' 
       ), '4', '' 
       ), '5', '' 
      ), '6', '' 
      ), '7', '' 
     ), '8', '' 
     ), '9', '' 
    ), '' 
    ) 
+0

спасибо, выберите запрос работал, теперь как я могу обновить поле? пожалуйста, измените этот запрос выбора, чтобы обновить запрос – nima

+0

@nima: Ну, это то же самое ... но вот обновление ... –

+0

очень спасибо, сработал полностью :) – nima

Смежные вопросы