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中文网其它相关文章!
……