当前位置: 首页 > 面试题库 >

mysql选择查询序列化数组中

万俟招
2023-03-14
问题内容

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

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

像这样:

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

希望这是有道理的。

任何想法将不胜感激。

谢谢


问题答案:

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

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

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

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



 类似资料:
  • 问题内容: 上面的查询返回如下结果, 此查询用于计算所有者拥有的传输数量。琳达有一辆汽车和一辆摩托车,所以结果应该是: 我已经尝试过此查询,但返回错误: 谁能帮我吗? 问题答案:

  • 问题内容: 我有一个名为faq_questions的表,其结构如下: 我试图建立一个给定排序顺序的查询,选择具有最高排序顺序的行。 例子: 好的,假设我为已知的排序顺序(id 4)输入了5,我需要它返回ID为3的行。由于不能保证sort_order是连续的,所以我不能只选择known_sort_order + 1。 谢谢! 问题答案: 似乎太简单了,但是看起来像您所需要的:

  • 问题内容: 嗨,我有一个带有日期字段和一些其他信息的表。我想选择过去一周(从星期日开始的一周)中的所有条目。 表值: 我想选择上周的所有ID,预期输出为5、6、8 (ID 2不在上周,ID 15在本周。) 怎么写和SQL Query相同。 问题答案:

  • 问题内容: 我有一个关于MYSQL中的选择查询的问题 我有两个不同的表,我想获得一定的结果 我使用了COUNT方法,该方法只给我结果(> = 1) 但实际上,我想使用包含零的所有计数怎么做? 我的查询是: 第一张桌子:Content_hits 第二张表:Content_tag 结果但不完整 例如:tag_id = 1的Subsrciber6应该具有count(*)= 0 问题答案: 现在,您已经进

  • 问题内容: 基本上有属性表和翻译表-一个属性有很多翻译。 我需要从翻译中为指定属性的每个属性选择id和value,即使该语言没有翻译记录也是如此。我缺少某种连接技术,或者连接(不涉及语言表)在这里不起作用,因为以下操作不会返回具有指定语言的不存在的翻译的属性。 所以我正在使用这样的子查询,这里的问题是用相同的参数在同一个表中创建两个子查询(感觉像性能消耗,除非mysql将那些子查询分组,我怀疑这是

  • 我必须计算ARPU(收入/#用户),但我得到了这个错误: 子查询使用外部查询第7行的未分组列“usage_records.date”:WHERE created_at<=date_trunc('day',usage_records.d...^) null