如何在phpmyadmin列中具有多个值?
我想知道如何在一列中为行指定多个值。在本例中,为用户提供多个访问号码,以便我可以检索这些号码进行页面访问 我现在所拥有的:如何在phpmyadmin列中具有多个值?,phpmyadmin,Phpmyadmin,我想知道如何在一列中为行指定多个值。在本例中,为用户提供多个访问号码,以便我可以检索这些号码进行页面访问 我现在所拥有的: --------------------------------------------------------------------------------- id | first_name | last_name | email | password | date | access | ------------------
---------------------------------------------------------------------------------
id | first_name | last_name | email | password | date | access |
---------------------------------------------------------------------------------
1 | Test | User | test@website.com | md5pass | -date- | 2
---------------------------------------------------------------------------------
我想给用户多址代码/变量/整数
像这样:
---------------------------------------------------------------------------------
id | first_name | last_name | email | password | date | access |
---------------------------------------------------------------------------------
1 | Test | User | test@website.com | md5pass | -date- | 2, 201, 3908
---------------------------------------------------------------------------------
这可能吗
如果可能的话,当我找回它时,我会怎么做呢
我计划这样做:如果用户访问代码'201'存在,那么就提供访问/显示内容。您的操作方式可以工作;检索用户行时,只需分解并修剪
access
列即可
但是,正确的方法是使用不同的表,比如user\u访问。最简单的情况是:
CREATE TABLE user_access (
user_id int,
access int
)
此表将为每个用户定义的每个访问代码提供一行。下面是您的示例在表中的样子:
select * from user_access;
+---------+--------+
| user_id | access |
+---------+--------+
| 1 | 2 |
| 1 | 201 |
| 1 | 3908 |
+---------+--------+
然后,当您检索用户并且对他们的访问级别感兴趣时,您将加入user_访问表:
SELECT u.*, ua.access FROM users u LEFT JOIN user_access ua on u.id = ua.user_id WHERE u.id = <some user id>
选择u.*,u.access FROM users u LEFT JOIN user\u access ua on u.id=ua.user\u id,其中u.id=
(左加入,因为不能保证用户定义了任何访问权限)
或者,在两个查询中执行此操作:
SELECT * FROM users WHERE id = <some user id>
SELECT access FROM user_access WHERE user_id = <some user id>
从id=
从用户访问中选择访问,其中用户id=
谢谢。我明白这是怎么回事了。尽管如此,您如何在访问列中添加多个访问号码?使用单独的表策略,您不需要这样做。使用上面的两个查询,第二个查询将返回为该用户定义的所有访问号码。这使得添加或删除新访问变得非常简单:只需从表中添加或删除一行即可。