我正在尝试从数据库中检索产品列表。我有“products_in_cart”列,其中包含a:2:{i:0;s:3:"125";i:1;s:2:"92";}
形式的序列化数据。我只想选择包含上述序列化数据的单元格,至少包含购物车中的一个产品。该列的类型为“text NULL”,因此我选择了“from IS NOT NULL”但我得到的字段也不包含产品。我还发现我的条目包含一些序列化数据,如a:0:{}
但没有key->值对,我不想检索它们。
有没有办法只选择字段“product”中包含序列化数据的行,并且只有一个键=>值对?
谢谢!
答案 0 :(得分:2)
您可以添加“其中products_in_cart不喜欢'%:{}'”。这将排除括号之间没有数据的任何条目。
如果您可能同时使用null和上述数据,则需要使用:
WHERE products_in_cart not like '%:{}'
and products_in_cart is not NULL
答案 1 :(得分: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不同),则需要第一个条件