我正在实现一个细化搜索mysql查询基于复选框值和存储在Mysql数据库表中的匹配值。复选框字段如下:
<input type="checkbox" value="1" name="services_search[]" id="services_search[]" /> Service ABC
<input type="checkbox" value="2" name="services_search[]" id="services_search[]" /> Service XYZ
<input type="checkbox" value="3" name="services_search[]" id="services_search[]" /> Service 123 我有一个mysql表"users“,其中有id、name和services字段。字段"services“存储了一个或多个服务值,如下所示:
| id | name | services
| 1 | Mark | 1, 2, 3
| 2 | Jhon | 2, 3
| 3 | Tina | 1现在我的问题是如何实现mysql查询,以获得基于多个检查服务的精化结果。
发布于 2013-08-24 18:54:52
由于一个用户可以拥有多个服务和一个服务可以属于多个用户,因此更好的做法是使用多对多关系表。
你的例子应该是这样的结构:
用户表
id | name
---+-----
1 | Mark
2 | John
3 | Tina服务表
id | service
---+--------
1 | Normal
2 | Premium
3 | Admin给用户的表
user_id | service_id
--------+-----------
1 | 1
1 | 2
1 | 3
2 | 1
2 | 2
3 | 1其中user_id和service_id具有指向主表中各自字段的外键。现在它很容易维护,不需要字符串操作,并且很容易查询。
https://stackoverflow.com/questions/18417421
复制相似问题