2012-01-24 3 views
0

У меня есть эта таблица:MySQL подрезать данные для обновления

+--------+------------+---------------------+------+ 
| id  | product_id | pa_value_name  | oesd | 
+--------+------------+---------------------+------+ 
|  1 |  120972 |      | 0 | 
|  9 |  84147 | 1-2 business days | 0 | 
| 3255 |   12 | 1-3 business days | 0 | 
| 260220 |  124881 | 10-12 business days | 0 | 
| 641906 |  147053 | 11-13 business days | 0 | 
| 650680 |  139790 | 12-14 business days | 0 | 
| 702408 |  112249 | 13-15 business days | 0 | 
| 705013 |  223960 | 14-16 business days | 0 | 
| 736335 |  124882 | 15-17 business days | 0 | 
| 765595 |  106570 | 16-18 business days | 0 | 
+--------+------------+---------------------+------+ 

и я хочу, чтобы обновить OeSD поле, получая «к» дата в формате * pa_value_name * поле.

Например:

+--------+------------+---------------------+------+ 
| id  | product_id | pa_value_name  | oesd | 
+--------+------------+---------------------+------+ 
|  9 |  84147 | 1-2 business days | 2 | 
+--------+------------+---------------------+------+ 

В строке 2 (ID = 9): OESD должен быть , как он должен получить '2' из "1- рабочих дней" значение * pa_value_name *.

Спасибо!

ответ

1

Это обновит oesd и преобразовать значение в число

UPDATE the_table SET oesd = CONVERT(SUBSTRING(pa_value_name, LOCATE('-', pa_value_name)+1), decimal); 
1

Я не могу попробовать это: идея заключается в том, чтобы извлечь строку между '-' и ''

UPDATE your_table SET oesd = 
    SUBSTR(pa_value_name, 
      INSTR(pa_value_name,'-') + 1, 
      INSTR(pa_value_name,' ') - INSTR(pa_value_name,'-') 
     ) 

Если OESD представляет собой целое число, преобразовать его так:

UPDATE your_table SET oesd = 
    CAST(
     SUBSTR(pa_value_name, 
       INSTR(pa_value_name,'-') + 1, 
       INSTR(pa_value_name,' ') - INSTR(pa_value_name,'-') 
      ) 
     AS UNSIGNED 
    ) 
1

Извлечь дату "to" с использованием операций строки MySQL:

  • INSTR eocates «-» и пространство.
  • SUBSTRING выдает соответствующий текст.
  • CAST преобразует текст в число
Смежные вопросы