在json编码的数组上使用数组运算符中的mysql?

时间:2014-04-15 17:04:46

标签: php mysql arrays json

我使用IN数组运算符为约会网站创建搜索查询。

e.g SELECT * from 'users' where 'job' IN("1", "2", "3");

这一直有效,直到我有一个用户可以选择多个选项的列。

e.g jobs ["1", "2"] is stored in the database.

因此可以在json数组中使用数组。

是否有任何解决方案,例如在数据库中存储多个选项的不同方法?

图片帮助http://tinypic.com/view.php?pic=287eqt3&s=8#.U01mma1dWrA

1 个答案:

答案 0 :(得分:0)

您应该在数据库中avoid storing serialized data

您的用户应具有唯一ID。 创建另一个表"职业"并将每个职业插入其中,并将每一行分配给用户。

occupations
----------------------
name         user_id
______________________
Film         1
Singer       1
Copywriter   2

然后你可以搜索像电影这样的关键词。

SELECT * FROM `occupations` WHERE name LIKE "%Film%"

你为所有用户分配了职业"电影"。

多个:

SELECT * FROM `occupations` WHERE name LIKE "%Film%" OR name LIKE "%Singer%"

所有拥有电影和歌手的用户。