我使用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
答案 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%"
所有拥有电影和歌手的用户。