【问题标题】:sql upadating table codeignitersql更新表codeigniter
【发布时间】:2012-08-01 07:12:09
【问题描述】:

我有两张桌子tbl_users(id,role_id,username),tbl_roles(id,role_name)

我必须通过从 role_name 中获取与 role_name = user 对应的 id 来更新 tbl_users 中用户名的 role_id。

为此,我做了两个查询,首先从表 tbl_roles 中的 where role_name="user" 获取 role_id,然后在 tbl_users 中设置 role_id where username="username"。

我的模型功能:- 我在这里做了两个查询,并询问是否可以在一个查询中完成。

function dropModerator($username) {
        $this->db->select('role_id');
        $this->db->where('role_name',"User");
        $role_id = $this->db->get('tbl_roles');
        foreach($role_id->result() as $value)
            $role = $value->role_id;
        $sql = "UPDATE tbl_users SET role_id='$role' WHERE username='$username'";
        return $this->db->query($sql);
    }

再次,我想这样做是因为,这会使我的程序在运行时变慢,我想在单个查询中执行它以快速获得输出。

【问题讨论】:

标签: php sql codeigniter


【解决方案1】:

你可以像这样在一个查询中做到这一点:

UPDATE  tbl_users 
SET     role_id = ( SELECT  Role_ID
                    FROM    tbl_Roles
                    WHERE   Role_Name = 'user' 
                    )
WHERE   username = '$username'

【讨论】:

    猜你喜欢
    • 2012-07-17
    • 1970-01-01
    • 2018-06-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多