2013-06-20 92 views
0

我想複製一個產品的描述段落中的第一句話,用於在mysql數據庫中描述標籤。例如。在本產品說明中,我只需要將第一句從products_description字段複製到products_meta_description字段。MySQL查詢得到一個段落中的第一個句子

「肯德爾霍華德8U緊湊型系列SOHO服務器機櫃機架適用於空間有限的IT設置。圓滑耐用的設計專爲小型企業,家庭辦公室或IT專業人士設計,不需要犧牲他們的服務器機架設備的安全。「

應複製到products_meta_description中作爲: 「Kendall Howard 8U緊湊型系列SOHO服務器機櫃機架非常適合空間有限的IT安裝。」

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

不知道該怎麼做。我假設它會找到段落中找到的第一個句點(。),並在此之前獲取所有內容。順便說一句,我在phpmyadmin SQL查詢工具中這樣做。有成千上萬的產品,所以我認爲這將是獲得爲每個產品輸入的罐裝元描述標籤與手動執行它的最簡單方法。

回答

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), '.') 

來源

相關問題