sql更新表codeigniter

时间:2012-08-01 07:12:10

标签: php sql codeigniter

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

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

为此,我首先从表role_name="user"中的tbl_roles处获取role_id,然后在tbl_users中将role_id设置为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);
    }

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

1 个答案:

答案 0 :(得分:2)

您可以在一个查询中执行此操作:

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