Mysql-返回select查询结果中的表名
我有一个数据库,其中存储了大量信息,包括用户名、密码和不同类型用户(管理员、客户等)的其他详细信息,当然是在不同的表中 我想使用用户名搜索数据库,并返回用户名所属表的名称。这将告诉我他们是什么类型的用户。 大概是这样的: 从表1、表2、表3中选择表名 其中username=thisValueMysql-返回select查询结果中的表名,mysql,select,Mysql,Select,我有一个数据库,其中存储了大量信息,包括用户名、密码和不同类型用户(管理员、客户等)的其他详细信息,当然是在不同的表中 我想使用用户名搜索数据库,并返回用户名所属表的名称。这将告诉我他们是什么类型的用户。 大概是这样的: 从表1、表2、表3中选择表名 其中username=thisValue 我对mysql没有太多的经验,所以我甚至不知道从哪里开始。你说的当然是在单独的表中,但实际上最好是有一个单用户表,其中有一个角色列记录用户的角色: CREATE TABLE users ( id I
我对mysql没有太多的经验,所以我甚至不知道从哪里开始。你说的
当然是在单独的表中,但实际上最好是有一个单用户表,其中有一个角色
列记录用户的角色:
CREATE TABLE users (
id INT NOT NULL PRIMARY KEY,
role_id INT NOT NULL,
FOREIGN KEY (role_id) REFERENCES roles (id)
)
以及角色表:
CREATE TABLE roles (
id INT NOT NULL PRIMARY KEY,
desc VARCHAR(100) NOT NULL,
...
)
有了这个设计,就可以很容易地找到所有用户,例如管理员:
SELECT u.*
FROM users u
INNER JOIN roles r
ON u.role_id = r.id
WHERE
r.desc = 'admin';
这个答案假设给定的用户总是只有一个角色。要考虑多个角色,我们可以在用户
和角色
表之间使用连接表。首先重新设计表结构。有一个包含用户信息的表,并包含一个类似“用户类型”的列。(更好的是,一个用户类型的查找表,并且该表有一个外键。)正如您所发现的,您现在的结构很难查询和维护。我添加了一个数据库布局的屏幕截图以供参考。问题是每个不同的用户以不同的方式与数据库相关,并且具有不同的属性。数据库中包含的表格包括:管理员、客户、节日组织者、节日、预订、门票、表演者和表演者。每个用户共享的唯一属性是用户名和密码。我添加了一个数据库布局的屏幕截图,以供参考。这个新信息不会真正改变我的答案。