一尘不染

mysql选择查询序列化数组中

mysql

我在数据库字段中的序列化数组中存储项目列表(我在使用PHP / MySQL)。

我想要一个查询,该查询将选择所有包含数组中这些项目之一的记录。

像这样:

select * from table WHERE (an item in my array) = '$n'

希望这是有道理的。

任何想法将不胜感激。

谢谢


阅读 424

收藏
2020-05-17

共1个答案

一尘不染

因此,您是要使用MySQL搜索已通过serialize命令进行序列并存储在数据库字段中的PHP数组吗?我的第一个反应是:天哪。我的第二个反应是:为什么?在
理智 的事情可以是:

  1. 将数组检索到PHP中,反序列化并在其中搜索
  2. 忘记将数据按序列化方式存储在MySQL中并将其存储为常规表并对其进行索引以进行快速搜索

我会选择第二个选项,但我不知道您的上下文。

当然,如果您确实愿意,可以尝试使用SUBSTRING其他功能或其他MySQL函数并尝试操作该字段,但是我不知道您为什么要这样做。这很麻烦,而且这是不必要的丑陋骇客。另一方面,这是一个难题,这里的人们倾向于喜欢难题,因此,
如果您真的想 发布自己领域的内容,我们可以试一试。

2020-05-17