ホームページ  >  記事  >  データベース  >  mysqlでの条件付き制限文の実装例(2)

mysqlでの条件付き制限文の実装例(2)

黄舟
黄舟オリジナル
2017-09-09 15:01:031306ブラウズ

5.limit ステートメント:
構文: select フィールド名 from は開始行を制限し、複数の行をクエリします。

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)

注: 開始行の最初の行は 1 ではなく 0 です。

6. like ステートメント:

構文: select field name from table name 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 unique field name from table name;

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での条件付き制限文の実装例(2)の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。