2017-03-03 22 views
0

我有一個序列化領域的MySQL數據庫,看起來像這樣叫細節選擇從MySQL的序列化值與正則表達式

a:4:{s:9:"bootstrap";s:14:"Boostrap_3.3.x";s:7:"layouts";s:10:"Responsive";s:13:"preprocessors";s:0:"";s:8:"browsers";s:117:"Latest_Chrome,Latest_Firefox,Latest_Safari,Internet_Explorer_11,Internet_Explorer_10,Internet_Explorer_9,Latest_Opera";} 

我試圖找回含Bootstrap_3值記錄.X

我已經能夠基於鍵來檢索信息場數據:引導下列要求:

此查詢返回所有具有名爲bootstrap的字段的記錄。

我需要什麼,以便選擇包含Bootstrap_3.x值的改變?

任何幫助,將不勝感激。

漢克斯, - 保羅

回答

0

在MySQL中,你可以使用正則表達式在查詢:

SELECT details as bootstrap_version FROM product_info 
WHERE details REGEXP 'bootstrap";s:\\d+:"Bootstrap_3\.x' 

但是,如果這個信息是你打算更經常使用搜索的東西,我會建議把它放在另一列,你可以索引 - 查詢中的正則表達式非常緩慢。

閱讀文檔更多:https://dev.mysql.com/doc/refman/5.7/en/regexp.html

0

您應該用戶REGEXP:

SELECT details AS bootstrap_version FROM product_info WHERE details REGEXP 'Boostrap_3(\\.[0-9]+)+'