2012-06-08 1 views
3

Всего моих номеров деталей отформатированы как «00-00000-00» в колонке «part_no»Извлеките среднюю часть колонны в MySql

мне нужно создать новый столбец, который извлекает только среднюю часть, пять символов между «00» и «-00» номера детали.

Можно ли создать этот результат, когда запись создается через php?

Благодаря

Erik

ответ

3

Сначала вы должны создать столбец для хранения этих данных, то вы должны сделать это:

UPDATE tableName SET newColumnName = SUBSTR(part_number,4,5); 
+1

Спасибо. Чтобы достичь этого на стороне клиента, когда я создаю новую запись, можно добавить следующую строку: $ order = "INSERT INTO cartons_added (add_time, type, part_no, add_type, add_qty, add_ref, add_by, add_notes) \t ЦЕННОСТИ ('дата $', '$ _POST [тип]', '$ _POST [part_no]', '$ _POST [add_type]', '$ _POST [add_qty]', «$ _POST [add_ref] ', ' $ _POST [add_by] ', ' $ _POST [add_notes] ') "; – Erik

+0

нет клиентской стороны с PHP, помните, что все в php выполняется на стороне сервера. И если вы хотите сгенерировать это значение при вставке записи, вы можете сделать это непосредственно с PHP или передать часть логики в СУРБД с помощью триггеров – PachinSV

3
select substring(part_no, 4, 5) as middle_part 
from your_table 
+0

Возможно ли создать этот результат, когда запись создается через php? – Erik

+0

Вы имеете в виду заявление о вставке? попробуйте 'insert into your_table (part_no) значения (substring ('00 -00000-00 ', 4, 5))' –

+0

Это отлично работает, но мне нужно сделать его постоянным для всех существующих записей: что бы я изменил? выберите подстроку (part_no, 5, 5) в качестве ядра из cartons_cuurrent – Erik