查询构造器

    1. //SELECT u.`username`, u.`age` FROM `users` `u`
    2. $select->from($this->getTableName() . " as u", array("username", "age"));
    3. //SELECT username, age FROM `users`
    4. $select->from($this->getTableName(), "username, age");
    5. //SELECT users.`username` `name`, users.`age` FROM `users`

    条件查询(where、orWhere)

    警告:除非明确参数是安全可靠的,否则绝对禁止$select->where("username = '{$username}'")方式传参,避免您的应用程序受到注入攻击
    1. //SELECT users.* FROM `users` WHERE (age > "18") ORDER BY age ASC
    2. $select->from($this->getTableName())
    3. ->where("age > ?", 18)
    4. ->order("age ASC");
    5. //----------多个排序---------
    6. //SELECT users.* FROM `users` WHERE (age > "18") ORDER BY age ASC, username ASC
    7. $select->from($this->getTableName())
    8. ->where("age > ?", 18)
    9. ->order(array("age ASC", "username ASC"));

    group by

    1. //SELECT users.* FROM `users` WHERE (age > 18) GROUP BY age ORDER BY age ASC
    2. $select->from($this->getTableName())
    3. ->where("age > 18")
    4. ->group("age")
    5. ->order("age ASC");

    连接查询(joinLeft、joinInner、joinRight)

    1. $select->from($this->getTableName() . " AS u")
    2. ->joinLeft($this->getTableName("departments") . " AS d", "u.department_id = p.department_id", array("department_name"))
    3. ->order("u.age ASC");
    1. //SELECT users.* FROM `users` WHERE (age > "18") ORDER BY age ASC LIMIT 20
    2. $select->from($this->getTableName())
    3. ->where("age > ?", 18)
    4. ->order("age ASC")
    5. ->limit(20);
    6. //SELECT users.* FROM `users` WHERE (age > "18") ORDER BY age ASC LIMIT 20 OFFSET 0
    7. $select->from($this->getTableName())
    8. ->where("age > ?", 18)
    9. ->order("age ASC")