MariaDB动态列&;JSON?
我试图将JSON数据(在PHP中几乎是一个长度未知的数组)存储在一个列中,这样我就可以对其执行where查询。让我们以这个为例 假设我有一个领域问你喜欢什么样的运动(这是一个复选框) 然后通过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
sports[]
数组将其发送到PHP。然后我想把它添加到我的数据库中
|sports|{hockey:false,swimming:true,football:false,soccer:true}|
或者类似的事情,然后我可能会去
SELECT COUNT(*) FROM fields WHERE hockey = "false";
我似乎不知道该怎么做,忽略了一个事实,这个“示例”实际上可以通过加入我想使用mariadb动态列来完成(至少我相信这是我想要的)。我知道我可以用Postgre来做这件事。都在这里:
动态列存储在realblob
列中,并按如下方式插入:
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;