匹配mysql表中的json数组


Matching json array from mysql table

我的用户数据库中有一个名为"标签"的列,它看起来像这样:

`[1,2,3,4]`

那个数组只有数字。

我现在想知道我是否可以从数据库中选择json数组有特定值的地方。例如:

`SELECT * FROM users WHERE tags = "HAS 1 IN ARRAY"`

我只是通过匹配数字1进行测试,但如果任何用户的数组中有数字10-19,它可能会返回10到19的值。

试试这个:

SELECT * FROM users WHERE tags REGEXP '[[:<:]]1[[:>:]]';

有关详细信息,请参阅文档"正则表达式"。

PS我建议分解表,将标签移动到依赖表中。在大表上,regexp将很慢。。。