首頁  >  文章  >  資料庫  >  mysql實作條件限制語句的實例(二)

mysql實作條件限制語句的實例(二)

黄舟
黄舟原創
2017-09-09 15:01:031323瀏覽

5.limit語句:
語法:select 欄位名稱from 標示limit 起始行,查詢幾行;

mysql> select * from 4a limit 0,3;
+--------+------+--------+------+--------+------+------+-------+
| sname  | sage | tname  | t    | cname  | s    | c    | score |
+--------+------+--------+------+--------+------+------+-------+
| 刘一   |   18 | 叶平   |    1 | 语文   |    1 |    1 |    56 |
| 刘一   |   18 | 贺高   |    2 | 数学   |    1 |    2 |    78 |
| 刘一   |   18 | 杨艳   |    3 | 英语   |    1 |    3 |    67 |
+--------+------+--------+------+--------+------+------+-------+
3 rows in set (0.00 sec)

注意:起始行的第一個行為0而不是1 。

6. like語句:

語法:select 欄位名稱from 表名where 欄位名稱like 條件;

mysql> select * from 4a where sage like "%9" or sage like "%8";
+--------+------+--------+------+--------+------+------+-------+
| sname  | sage | tname  | t    | cname  | s    | c    | score |
+--------+------+--------+------+--------+------+------+-------+
| 刘一   |   18 | 叶平   |    1 | 语文   |    1 |    1 |    56 |
| 刘一   |   18 | 贺高   |    2 | 数学   |    1 |    2 |    78 |
| 刘一   |   18 | 杨艳   |    3 | 英语   |    1 |    3 |    67 |
| 刘一   |   18 | 周磊   |    4 | 物理   |    1 |    4 |    58 |
| 钱二   |   19 | 叶平   |    1 | 语文   |    2 |    1 |    79 |
| 钱二   |   19 | 贺高   |    2 | 数学   |    2 |    2 |    81 |
| 钱二   |   19 | 杨艳   |    3 | 英语   |    2 |    3 |    92 |
| 钱二   |   19 | 周磊   |    4 | 物理   |    2 |    4 |    68 |
| 李四   |   18 | 贺高   |    2 | 数学   |    4 |    2 |    88 |
| 李四   |   18 | 杨艳   |    3 | 英语   |    4 |    3 |    90 |
| 李四   |   18 | 周磊   |    4 | 物理   |    4 |    4 |    93 |
| 赵六   |   19 | 叶平   |    1 | 语文   |    6 |    1 |    35 |
| 赵六   |   19 | 贺高   |    2 | 数学   |    6 |    2 |    68 |
| 赵六   |   19 | 周磊   |    4 | 物理   |    6 |    4 |    71 |
+--------+------+--------+------+--------+------+------+-------+
14 rows in set (0.00 sec)
mysql> select * from 4a where sage like "%9" or sage like "%8" or sage like "%%";
+--------+------+--------+------+--------+------+------+-------+
| sname  | sage | tname  | t    | cname  | s    | c    | score |
+--------+------+--------+------+--------+------+------+-------+
| 刘一   |   18 | 叶平   |    1 | 语文   |    1 |    1 |    56 |
| 刘一   |   18 | 贺高   |    2 | 数学   |    1 |    2 |    78 |
| 刘一   |   18 | 杨艳   |    3 | 英语   |    1 |    3 |    67 |
| 刘一   |   18 | 周磊   |    4 | 物理   |    1 |    4 |    58 |
| 钱二   |   19 | 叶平   |    1 | 语文   |    2 |    1 |    79 |
| 钱二   |   19 | 贺高   |    2 | 数学   |    2 |    2 |    81 |
| 钱二   |   19 | 杨艳   |    3 | 英语   |    2 |    3 |    92 |
| 钱二   |   19 | 周磊   |    4 | 物理   |    2 |    4 |    68 |
| 张三   |   17 | 叶平   |    1 | 语文   |    3 |    1 |    91 |
| 张三   |   17 | 贺高   |    2 | 数学   |    3 |    2 |    47 |
| 张三   |   17 | 杨艳   |    3 | 英语   |    3 |    3 |    88 |
| 张三   |   17 | 周磊   |    4 | 物理   |    3 |    4 |    56 |
| 李四   |   18 | 贺高   |    2 | 数学   |    4 |    2 |    88 |
| 李四   |   18 | 杨艳   |    3 | 英语   |    4 |    3 |    90 |
| 李四   |   18 | 周磊   |    4 | 物理   |    4 |    4 |    93 |
| 王五   |   17 | 叶平   |    1 | 语文   |    5 |    1 |    46 |
| 王五   |   17 | 杨艳   |    3 | 英语   |    5 |    3 |    78 |
| 王五   |   17 | 周磊   |    4 | 物理   |    5 |    4 |    53 |
| 赵六   |   19 | 叶平   |    1 | 语文   |    6 |    1 |    35 |
| 赵六   |   19 | 贺高   |    2 | 数学   |    6 |    2 |    68 |
| 赵六   |   19 | 周磊   |    4 | 物理   |    6 |    4 |    71 |
+--------+------+--------+------+--------+------+------+-------+
21 rows in set (0.00 sec)

可以看出雙百分號%%是全匹配,可以匹配表中的所有記錄。那麼,即便是NULL值也能夠匹配嗎?

答案是否定的:

mysql> select * from 4a;
+--------+------+--------+------+--------+------+------+-------+
| sname  | sage | tname  | t    | cname  | s    | c    | score |
+--------+------+--------+------+--------+------+------+-------+
| 刘一   |   18 | 叶平   |    1 | 语文   |    1 |    1 |    56 |
| 刘一   |   18 | 贺高   |    2 | 数学   |    1 |    2 |    78 |
| 刘一   |   18 | 杨艳   |    3 | 英语   |    1 |    3 |    67 |
| 刘一   |   18 | 周磊   |    4 | 物理   |    1 |    4 |    58 |
| 钱二   |   19 | 叶平   |    1 | 语文   |    2 |    1 |    79 |
| 钱二   |   19 | 贺高   |    2 | 数学   |    2 |    2 |    81 |
| 钱二   |   19 | 杨艳   |    3 | 英语   |    2 |    3 |    92 |
| 钱二   |   19 | 周磊   |    4 | 物理   |    2 |    4 |    68 |
| 张三   |   17 | 叶平   |    1 | 语文   |    3 |    1 |    91 |
| 张三   |   17 | 贺高   |    2 | 数学   |    3 |    2 |    47 |
| 张三   |   17 | 杨艳   |    3 | 英语   |    3 |    3 |    88 |
| 张三   |   17 | 周磊   |    4 | 物理   |    3 |    4 |    56 |
| 李四   |   18 | 贺高   |    2 | 数学   |    4 |    2 |    88 |
| 李四   |   18 | 杨艳   |    3 | 英语   |    4 |    3 |    90 |
| 李四   |   18 | 周磊   |    4 | 物理   |    4 |    4 |    93 |
| 王五   |   17 | 叶平   |    1 | 语文   |    5 |    1 |    46 |
| 王五   |   17 | 杨艳   |    3 | 英语   |    5 |    3 |    78 |
| 王五   |   17 | 周磊   |    4 | 物理   |    5 |    4 |    53 |
| 赵六   |   19 | 叶平   |    1 | 语文   |    6 |    1 |    35 |
| 赵六   |   19 | 贺高   |    2 | 数学   |    6 |    2 |    68 |
| 赵六   |   19 | 周磊   |    4 | 物理   |    6 |    4 |    71 |
| NULL   | NULL | NULL   | NULL | NULL   | NULL | NULL |    93 |
+--------+------+--------+------+--------+------+------+-------+
22 rows in set (0.05 sec)

7.distinct語句:
語法:select distinct 欄位名稱from 表名;

mysql> select distinct sname from 4a;           
+--------+
| sname  |
+--------+
| 刘一   |
| 钱二   |
| 张三   |
| 李四   |
| 王五   |
| 赵六   |
| NULL   |
+--------+
mysql> select distinct sname, sage from 4a;
+--------+------+
| sname  | sage |
+--------+------+
| 刘一   |   18 |
| 钱二   |   19 |
| 张三   |   17 |
| 李四   |   18 |
| 王五   |   17 |
| 赵六   |   19 |
| NULL   | NULL |
+--------+------+
7 rows in set (0.00 sec)
mysql> select distinct sname, sage,tname from 4a;
+--------+------+--------+
| sname  | sage | tname  |
+--------+------+--------+
| 刘一   |   18 | 叶平   |
| 刘一   |   18 | 贺高   |
| 刘一   |   18 | 杨艳   |
| 刘一   |   18 | 周磊   |
| 钱二   |   19 | 叶平   |
| 钱二   |   19 | 贺高   |
| 钱二   |   19 | 杨艳   |
| 钱二   |   19 | 周磊   |
| 张三   |   17 | 叶平   |
| 张三   |   17 | 贺高   |
| 张三   |   17 | 杨艳   |
| 张三   |   17 | 周磊   |
| 李四   |   18 | 贺高   |
| 李四   |   18 | 杨艳   |
| 李四   |   18 | 周磊   |
| 王五   |   17 | 叶平   |
| 王五   |   17 | 杨艳   |
| 王五   |   17 | 周磊   |
| 赵六   |   19 | 叶平   |
| 赵六   |   19 | 贺高   |
| 赵六   |   19 | 周磊   |
| NULL   | NULL | NULL   |
+--------+------+--------+
22 rows in set (0.00 sec)

可以看出當作用於多列的時候distinct就不再回傳唯一記錄了。
另外distinct還可以和一些數學運算的函數一起使用:

mysql> select count(distinct sname) from 4a;
+-----------------------+
| count(distinct sname) |
+-----------------------+
|                     6 |
+-----------------------+
1 row in set (0.08 sec)
mysql> select sum(distinct score) from 4a;
+---------------------+
| sum(distinct score) |
+---------------------+
|                1193 |
+---------------------+
1 row in set (0.06 sec)
mysql> select max(distinct score) from 4a;
+---------------------+
| max(distinct score) |
+---------------------+
|                  93 |
+---------------------+
1 row in set (0.06 sec)
mysql> select min(distinct score) from 4a;
+---------------------+
| min(distinct score) |
+---------------------+
|                  35 |
+---------------------+
1 row in set (0.00 sec)
mysql> select min(distinct score-1) from 4a;
+-----------------------+
| min(distinct score-1) |
+-----------------------+
|                    34 |
+-----------------------+
1 row in set (0.08 sec)

例子太多就不一一列舉了。

以上是mysql實作條件限制語句的實例(二)的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn