gpt4 book ai didi

json - MariaDB 动态列和 JSON?

转载 作者:太空狗 更新时间:2023-10-30 01:47:17 36 4
gpt4 key购买 nike

我正在尝试将 JSON 数据(在 PHP 中几乎是一个长度可能未知的数组)存储在一个列中,这样我就可以在其中进行查询。让我们以此为例...

假设我有一个字段询问您喜欢哪种运动(它是一个复选框)。

[] Soccer
[] Hockey
[] Football
[] Swimming

然后将通过 sports[] 数组发送到 PHP。然后我想把它添加到我的数据库中,所以它看起来像

|sports|{hockey:false,swimming:true,football:false,soccer:true}|

或者类似的东西,然后我可能会去

SELECT COUNT(*) FROM fields WHERE hockey = "false";

而且我似乎无法弄清楚如何正确地做到这一点,忽略这个“例子”实际上可以很容易地通过加入我想使用 mariadb 动态列来完成的事实(至少我相信这是我的想)。我知道我可以使用 Postgre 做到这一点。

最佳答案

都在这里:https://mariadb.com/kb/en/dynamic-columns/

动态列存储在一个真正的 blob 列中并像这样插入:

insert into data
values (data_id, user_id, COLUMN_CREATE(<dcolumn1>, <value1>, <dcolumn2>, <value2>, ...));

所以你不会在这里使用 json,而是用这种方式序列化数据:

$dynamic = array()
foreach($_POST['sports'] as $sport) {
$dynamicData[] = "'" . $sport . "'", TRUE;
}
$dynamicColumn = join(', ', $dynamicData);

会生成类似的东西

'hockey', TRUE, 'soccer', TRUE

要在所有行中搜索踢足球的人:

... where COLUMN_GET(dynamic_blob, 'soccer' as soccer) = TRUE; 

关于json - MariaDB 动态列和 JSON?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23087105/

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