gpt4 book ai didi

php - mysql 在序列化数组中选择查询

转载 作者:行者123 更新时间:2023-11-29 20:02:08 24 4
gpt4 key购买 nike

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

我想要一个查询来选择包含数组中这些项目中的特定一项的所有记录。

类似这样的事情:

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

希望这是有道理的。

任何想法将不胜感激。

谢谢

最佳答案

正如 GWW 在评论中所说,如果您需要以这种方式查询内容,您确实应该考虑将此数据存储为大字符串(这就是您的序列化数组)之外的其他内容。

如果这是不可能的(或者你只是懒),你可以利用序列化数组只是一个大字符串这一事实,并找出一个 LIKE 子句来查找匹配的记录。 PHP 序列化数据的方式很容易理解(提示:这些数字表示事物的长度)。

现在,如果您的序列化数组相当复杂,这会很快崩溃。但如果它是一个平面数组,你应该能够做到。

当然,您将使用 LIKE '%...%',因此您不会从任何索引中获得任何帮助,并且性能会非常差。

这就是为什么人们建议您以某种标准化的方式存储数据(如果您需要在数据“内部”进行查询)。

关于php - mysql 在序列化数组中选择查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40489143/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com