• 中文
    • English
  • 注册
  • 赞助本站

    • 支付宝
    • 微信
    • QQ

    感谢一直支持本站的所有人!

    • 查看作者
    • 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
    • 2.1k
    • 请登录之后再进行评论

      登录
    • 做任务
    • 实时动态
    • 偏好设置
    • 返回顶部
    • 单栏布局 侧栏位置: