gpt4 book ai didi

php - 是否可以在不反序列化的情况下更新序列化内容

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

假设数组包含 10 个项目名称为 age 的项目,第二个项目的值为 10序列化后存入mysql数组

是否可以直接更新序列化 mysql 查询中的年龄没有这些步骤(一种方法可以是这个)从数据库中选择序列化数据反序列化更改数组然后再次序列化然后更新

例如像这样序列化数据somhing

a:23:{i:10000011;a:5:{s:15:"social_users_id";s:8:"10000022";s:10:"friends_id";s:8:"10000011";s :8:"relation";s:1:"1";s:6:"status";s:1:"0";s:4:"html";s:41:"Pradeep Kumar 更新了头像.";}i:10000015;a:5:{s:15:"social_users_id";s:8:"10000022";s:10:"friends_id";s:8:"10000015";s:8:"relation";s:1:"6";s:6:"status";s:1:"0";s:4:"html";s:41:"Pradeep Kumar 更新了头像。";} i:10000016;a:5:{s:15:"social_users_id";s:8:"10000022";s:10:"friends_id";s:8:"10000016";s:8:"relation";s :1:"3";s:6:"status";s:1:"0";s:4:"html";s:41:"Pradeep Kumar 更新了头像。";}i:10000018;一:5:

或数组

[10000015] => Array
(
[social_users_id] => 10000022
[friends_id] => 10000015
[relation] => 6
[status] => 0
[html] => Pradeep Kumar has update profile picture.
)

[10000016] => Array
(
[social_users_id] => 10000022
[friends_id] => 10000016
[relation] => 3
[status] => 0
[html] => Pradeep Kumar has update profile picture.
)

我想选择并更新数组“10000015”的“状态”索引我使用了表的颜色的 longtext 数据类型。

我想先搜索那个状态索引,在更新之后,我们可以查询吗?或者我必须为此使用 PHP 代码..

还能再短一点吗?如果我们只想取消更新 1 件事,那里有很多浪费(不必要的查询、更新)...特别是如果数组很大

加上我们如何在不反序列化的情况下进行年龄搜索?(可能吗?)

任何想法...谢谢

最佳答案

据我所知这是不可能的,这是在 MySQL 中使用数组的缺点(您需要始终对数据进行序列化和反序列化)。

接下来我看到你的数组看起来一样,所以把它们放在表格中。

行 => social_users_id|friends_id|relation|status|html

如果你想使用数组,你可以看看 NoSQL。我用 mongodb取得了很大的成功。 NoSQL 数据库的一个巨大缺点是您需要摆脱 SQL 思维模式。例如,您不能使用 JOINS。

但是在 MonoDB 中支持数组并且“可查询”这对于动态数据集来说是一个巨大的优势


如果你真的想要它,你可以制作一个表 arrayarray_item

数组如下:id|name

和array_item:id|array_id|key|value

现在你可以在数组项上说我想要数组 id x 的值

还有很多其他的东西

就像我想要一个数组,其中键 y 和值需要是 x

请注意,此数据集将变得非常庞大且难以阅读

关于php - 是否可以在不反序列化的情况下更新序列化内容,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16729201/

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