2013-06-20 3 views
0

Я пытаюсь скопировать только первое предложение в абзаце описания продукта для тега метаописания в базе данных mysql. Например. в этом описании продукта мне просто нужно первое предложение скопировать из поля products_description в поле products_meta_description.mysql query, чтобы получить только первое предложение в абзаце

«Kendall Howard 8U Compact Series SOHO Server Cabinet Rack идеально подходит для ИТ-установок с ограниченным пространством. Гладкий, прочный дизайн специально разработан для малых предприятий, домашних офисов или ИТ-специалистов, которые хотят компактный дизайн, не жертвуя безопасность их серверного оборудования стойки ".

следует скопировать в products_meta_description как: «Kendall Howard 8U Compact Series SOHO Server Cabinet Rack идеально подходит для ИТ-установок с ограниченным пространством».

UPDATE products SET products_meta_description = products_description(1st sentence only) 

не знаю, как это сделать. Я предполагаю, что он найдет первый период (.), Найденный в параграфе, и просто получит все до этого. Кстати, я делаю это в phpmyadmin sql query tool. есть тысячи продуктов, поэтому я подумал, что это будет самый простой способ получить введенный для каждого продукта запрещенный метатег описания, а не делать это вручную.

ответ

3

MySQL, SUBSTRING_INDEX функция идеально подходит для этого:

UPDATE products 
SET products_meta_description = SUBSTRING_INDEX(products_description, '.', 1) 

Это даст вам все, что приходит перед тем первый период. Если вы хотите, период, а также, это легче всего просто CONCAT это результат:

UPDATE products 
SET products_meta_description = CONCAT(SUBSTRING_INDEX(products_description, '.', 1), '.') 
+0

Это может быть версия MySQL вещь; Я запускаю 5.1, где 'SUBSTRING_INDEX' требует три аргумента, третий - подсчет. Если у вас есть эта проблема, вам нужно использовать 'SUBSTRING_INDEX (products_description, '.', 1)' – nurdglaw

+0

Нет, это вещь «я забыл третий параметр» :) Спасибо за улов! Я исправлю ответ. –

2

функция в MySQL SUBSTRING_INDEX должна помочь вам:

UPDATE products SET products_meta_description = SUBSTRING_INDEX(products_description, '.', 1) 

Этот запрос должен обновить поле «products_meta_description», используя текст вступления из поля «products_description» до первого появления «.».

Полная остановка не включена, поэтому, если вам это нужно, вы должны добавить ее, объединив строки (первый аргумент - пустой разделитель).

UPDATE products SET products_meta_description = CONCAT_WS('', SUBSTRING_INDEX(products_description, '.', 1), '.') 

Источники