mysql数组字符串查询_MySQL在数据库数组字段中搜索值(整数或字符串)字段

我的MySQL数据库中有两个字段是数组。数据类型显示为带有(DC2Type:array)注释的LONGTEXT。MySQL在数据库数组字段中搜索值(整数或字符串)字段

例如,存储在这一领域的整数值应该是这样的:

a:4:{i:0;i:9;i:1;i:10;i:2;i:11;i:3;i:12;}

和字符串值应该是这样的:

a:2:{i:0;s:6:"Value1";i:1;s:6:"Value2";}

我需要这些领域的这种方式让我可以存储可过滤的列。例如。第一个可能是年龄组,所以代表年龄段9,10,11,12。

我的查询,则必须获得该说是相关的10岁或在某些情况下,说我想找到那些10和11

我试过IN和FIND_IN_SET语法但也不是所有记录返回任何结果。

使用IN

SELECT *

FROM table_name

WHERE MyField IN (10)

使用FIND_IN_SET

SELECT *

FROM table_name

WHERE FIND_IN_SET(MyField,'Value1') > 0;

我知道阵列可能不是存储值的最佳领域,但我不想为每个AgeGroup例如单独的字段Age1,Age2等或每个类别(例如Value1,Value2等)

有关如何从数据库数组字段中查找值或值的任何想法?

谢谢!

2017-08-01

mbg

+0

这个数据是PHP'serialize()'格式。有没有简单的方法直接在MySQL中处理它,你需要检索所有的记录,使用'unserialize()'然后在那里测试它。 –

+0

'FIND_IN_SET'只能使用逗号分隔值。您的字段中的值用';'分隔,而不是','。 –

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值