Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/json/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
MariaDB动态列&;JSON?_Json_Database_Mariadb - Fatal编程技术网

MariaDB动态列&;JSON?

MariaDB动态列&;JSON?,json,database,mariadb,Json,Database,Mariadb,我试图将JSON数据(在PHP中几乎是一个长度未知的数组)存储在一个列中,这样我就可以对其执行where查询。让我们以这个为例 假设我有一个领域问你喜欢什么样的运动(这是一个复选框) 然后通过sports[]数组将其发送到PHP。然后我想把它添加到我的数据库中 |sports|{hockey:false,swimming:true,football:false,soccer:true}| 或者类似的事情,然后我可能会去 SELECT COUNT(*) FROM fields WHERE hoc

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

假设我有一个领域问你喜欢什么样的运动(这是一个复选框)

然后通过
sports[]
数组将其发送到PHP。然后我想把它添加到我的数据库中

|sports|{hockey:false,swimming:true,football:false,soccer:true}|
或者类似的事情,然后我可能会去

SELECT COUNT(*) FROM fields WHERE hockey = "false";
我似乎不知道该怎么做,忽略了一个事实,这个“示例”实际上可以通过加入我想使用mariadb动态列来完成(至少我相信这是我想要的)。我知道我可以用Postgre来做这件事。

都在这里:

动态列存储在real
blob
列中,并按如下方式插入:

insert into data
values (data_id, user_id, COLUMN_CREATE(<dcolumn1>, <value1>, <dcolumn2>, <value2>, ...));
会产生类似于

'hockey', TRUE, 'soccer', TRUE
要在所有行中搜索正在进行足球比赛的ppl,请执行以下操作:

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