• 中文
    • English
  • 注册
  • 查看作者
  • 4-11:limit语句限制查询数量

    一.  限制查询结果返回的数量

    限制查询结果返回的数量语法结构:

    [LIMIT {[offset,] row_count | row_count OFFSET offset}]

    比如查询前两条记录:

    mysql> SELECT * FROM users LIMIT 2;
    +----+----------+----------+-----+------+
    | id | username | password | age | sex  |
    +----+----------+----------+-----+------+
    |  1 | Tom      | 123      |  27 |    0 |
    |  2 | John     | 123      |  38 |    0 |
    +----+----------+----------+-----+------+
    2 rows in set (0.00 sec)

    查询第3和4两条记录:

    mysql> SELECT * FROM users LIMIT 2,2;
    +----+----------+----------+-----+------+
    | id | username | password | age | sex  |
    +----+----------+----------+-----+------+
    |  3 | Tom      | 123      |  27 |    0 |
    |  4 | John     | 123      |  35 |    0 |
    +----+----------+----------+-----+------+
    2 rows in set (0.00 sec)

    值得注意的是,SELECT语句记录是从0开始,所以想查询3和4两条记录,不能写LIMIT 3,2, 而需要写LIMIT 2,2;

    另外如果id号和结果集中的排列顺序没有任何联系,比如:

    mysql> SELECT * FROM users ORDER BY id DESC LIMIT 2;
    +----+----------+----------+-----+------+
    | id | username | password | age | sex  |
    +----+----------+----------+-----+------+
    |  9 | 111      | 222      |  33 | NULL |
    |  8 | BEn      | 456      |  17 |    0 |
    +----+----------+----------+-----+------+
    2 rows in set (0.00 sec)

    可以看到显示的是id为9和8这两条记录,而不是1和2

    二.  回看INSERT SELECT

    4-3节最后,我们讲解了插入记录的另一种方法的语法结构:

    INSERT [INTO] tbl_name [(col_name,...)]SELECT...

    该方法可以将查找的结果存入指定的数据表。

    首先我们创建一个新的数据表test:

    mysql> CREATE TABLE test(
        -> id TINYINT UNSIGNED PRIMARY KEY AUTO_INCREMENT,
        -> username VARCHAR(20)
        -> );
    Query OK, 0 rows affected (0.01 sec)

    现在我们将users表中年龄大于30的用户名存入test表:

    mysql> INSERT test(username) SELECT username FROM users WHERE age >= 30;
    Query OK, 3 rows affected (0.01 sec)
    Records: 3  Duplicates: 0  Warnings: 0
    
    mysql> SELECT * FROM test;
    +----+----------+
    | id | username |
    +----+----------+
    |  1 | John     |
    |  2 | John     |
    |  3 | 111      |
    +----+----------+
    3 rows in set (0.00 sec)

    三.  限制查询结果返回的数量

    限制查询结果返回的数量语法结构:

    [LIMIT {[offset,]row_count | row_count OFFSET offset} ]

  • 0
  • 0
  • 0
  • 3.4k
  • 请登录之后再进行评论

    登录
    单栏布局 侧栏位置: