在数据库中搜索数组元素

时间:2013-01-07 12:01:12

标签: mysql

我想创建一个名为user_ports的表,它将包含用户在数据库中打开的所有端口。

而不是将每个列称为“port_80”,“port_100”

我想知道是否可以将它输入到一个将作为数组调用opened_ports的列。

但如果我想让端口80的所有用户都打开,我该怎么做?

1 个答案:

答案 0 :(得分:1)

据我所知,你只需要在user_ports表中有两列:user_id,它将引用相应的用户,open_port,它将描述特定的打开端口。然后你应该声明(user_id,opened_port)对作为主键。使用这种表结构,您可以通过以下查询选择打开80端口的用户ID:

SELECT user_id FROM user_ports WHERE opened_port = 80;

您可以将用户打开的所有端口存储为单个记录中的CSV,但这样会:

  1. 需要额外的代码来处理这种诡计;
  2. 使数据库查询变得复杂并变慢;
  3. 对数据库进行非规范化(应避免使用)。