2014-02-27 66 views
1

我試圖從數據庫中檢索產品列表。我有包含序列化數據的「products_in_cart」列,其格式爲a:2:{i:0;s:3:"125";i:1;s:2:"92";}。我只想選擇包含上面序列化數據的單元格,至少有一個產品在購物車中。該列的類型是「text NULL」,所以我做了一個選擇「where IS NOT NULL」,但是我得到的字段也不包含產品。我還發現我有包含一些序列化數據的條目,如a:0:{},但沒有鍵 - >值對,我不想檢索這些數據。 有沒有一種方法可以在只有一個鍵=>值對的情況下僅選擇包含字段「product」中的序列化數據的行?MySql - 只選擇包含序列化數據的單元格

謝謝!

回答

2

您可以添加「where products_in_cart不像'%:{}'」。這將排除括號之間沒有數據的任何條目。

在,你可能有null和上面提到的數據,你將需要使用的情況:

WHERE products_in_cart not like '%:{}' 
and products_in_cart is not NULL 
1
select products_in_cart from TABLE 
where products_in_cart != '' 
    and products_in_cart is not like '%:{}' 
    and products_in_cart is not null 

首要條件是必要的,如果你的腳本留下空白數據(「」是不同的NULL)

相關問題