【问题标题】:How to merge info in mysql stored procedure?如何在mysql存储过程中合并信息?
【发布时间】:2017-03-16 19:31:53
【问题描述】:

我有一个带有 2 个表的 mysql 数据库:usersloginsusers 表包含用户信息,logins 表包含用户可以登录的联系人登录 ID。这些登录 ID 可以是电子邮件或电话号码。这些登录 ID 充当公共 ID。 userId 永远不会在结果中给出。

现在我正在尝试创建一个存储过程,它提供所有用户的电话号码和电子邮件列表(请参阅tempTable)。

到目前为止,我已经编写了以下程序:

CREATE TEMPORARY TABLE tempTable (
public_id varchar(255) DEFAULT '',
info1 varchar(255) DEFAULT '',
info2 varchar(255) DEFAULT '',
info3 varchar(255) DEFAULT '',
phone varchar(255) DEFAULT '',
email varchar(255) DEFAULT ''
);

insert into tempTable(public_id, info1, info2, info3 ) (select userid, info1, info2, info3 from users);

Update tempTable
Inner Join logins
On tempTable.public_id = logins.userid
Set
tempTable.public_id = logins.login_id;

这可以将tempTablepulic_id 更改为logins 表的login_id。但是现在,我如何将电话和电子邮件放入tempTable

【问题讨论】:

    标签: mysql stored-procedures


    【解决方案1】:

    代码如下:

    创建临时表 tempTable ( public_id varchar(255) DEFAULT '', info1 varchar(255) 默认 '', info2 varchar(255) 默认 '', info3 varchar(255) 默认 '', 电话 varchar(255) DEFAULT '', 电子邮件 varchar(255) 默认 '' ); 插入 tempTable(public_id, info1, info2, info3) (从用户中选择 userid, info1, info2, info3); 更新临时表 内部连接登录 在 tempTable.public_id = logins.userid 放 tempTable.public_id = logins.login_id, tempTable.email = logins.login_id 其中 logins.login_type = 'email'; 更新临时表 内部连接登录 在 tempTable.public_id = logins.userid 放 tempTable.public_id = logins.login_id, tempTable.mobile = logins.login_id 其中 logins.login_type = 'mobile';

    【讨论】:

      猜你喜欢
      • 2014-12-07
      • 1970-01-01
      • 2012-01-26
      • 1970-01-01
      • 2012-12-22
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多