可能重複:
Simulating regex capture groups in mysql使用正則表達式在「標籤」中提取MySQL數據?
好日子,
我存儲在MySQL表多行數據。一個典型的價值可能是這個樣子:
::image-gallery::
::gallery-entry::images/01.jpg::/gallery-entry::
::/image-gallery::
有沒有一種方法 - 用正則表達式,我可以一)提取第一行術語圖片庫的方式(它可以是任何的短語,而不僅僅是圖像庫),然後提取中心線作爲兩個單獨的值這樣:
庫條目,然後圖像/ 01.JPG
可能有::庫條目的許多線::值,它們也可以被稱爲任何東西。更完整的示例將是:
::image-gallery::
::title::MY GALLERY::/title::
::date::2011-05-20::/date::
::gallery-entry::images/01.jpg::/gallery-entry::
::/image-gallery::
在本質上我想這樣的信息:在上述情況下,第一行和最後一行的內容類型(圖像庫)。然後我需要標題作爲關鍵值樣式對,所以標題作爲關鍵字,我的相冊作爲值。然後,隨後,我需要所有的字段行(gallery-entry)作爲關鍵值對。
這是一個遷移腳本,其中舊系統的數據將以不同語法遷移到新系統。
如果MySQL select語句不起作用,用PHP腳本解析數據提取結果會更容易嗎?
任何和所有的幫助總是讚賞。
親切的問候, 西蒙
這些例子在表中代表單個行?我猜想一個僅用於sql的解決方案將很難實現。從快速查看MySQL中的正則表達式支持(http://dev.mysql.com/doc/refman/5.1/en/regexp.html#operator_regexp),我認爲PHP或任何其他您喜歡的語言將是一種更簡單的方法。 – 2011-05-20 12:00:24
你好,你可能需要對數據的可能結構更加具體:做標籤自己包含多個結果集行('image-gallery')嗎? – collapsar 2011-05-20 14:31:37
@paul W - 對不起,這樣的延遲響應。但事實上,我最終用PHP的preg_match()函數進行了一些簡單的模式匹配。感謝您的反饋。 – SimonDowdles 2011-07-07 14:15:57