1.between 문:
mysql> select * from 4a where score between 76 and 89; +--------+------+--------+------+--------+------+------+-------+ | sname | sage | tname | t | cname | s | c | score | +--------+------+--------+------+--------+------+------+-------+ | 刘一 | 18 | 贺高 | 2 | 数学 | 1 | 2 | 78 | | 钱二 | 19 | 叶平 | 1 | 语文 | 2 | 1 | 79 | | 钱二 | 19 | 贺高 | 2 | 数学 | 2 | 2 | 81 | | 张三 | 17 | 杨艳 | 3 | 英语 | 3 | 3 | 88 | | 李四 | 18 | 贺高 | 2 | 数学 | 4 | 2 | 88 | | 王五 | 17 | 杨艳 | 3 | 英语 | 5 | 3 | 78 | +--------+------+--------+------+--------+------+------+-------+ 6 rows in set (0.02 sec)
mysql> select * from 4a where score between 78 and 88; +--------+------+--------+------+--------+------+------+-------+ | sname | sage | tname | t | cname | s | c | score | +--------+------+--------+------+--------+------+------+-------+ | 刘一 | 18 | 贺高 | 2 | 数学 | 1 | 2 | 78 | | 钱二 | 19 | 叶平 | 1 | 语文 | 2 | 1 | 79 | | 钱二 | 19 | 贺高 | 2 | 数学 | 2 | 2 | 81 | | 张三 | 17 | 杨艳 | 3 | 英语 | 3 | 3 | 88 | | 李四 | 18 | 贺高 | 2 | 数学 | 4 | 2 | 88 | | 王五 | 17 | 杨艳 | 3 | 英语 | 5 | 3 | 78 | +--------+------+--------+------+--------+------+------+-------+ 6 rows in set (0.00 sec)
이 두 가지 예를 보면 between 절이 실행될 때 값 범위에 경계 값이 포함되어 있음을 알 수 있습니다.
2.or 문:
mysql> select * from 4a where score=78 or score=88 or score>88 or score<60; +--------+------+--------+------+--------+------+------+-------+ | sname | sage | tname | t | cname | s | c | score | +--------+------+--------+------+--------+------+------+-------+ | 刘一 | 18 | 叶平 | 1 | 语文 | 1 | 1 | 56 | | 刘一 | 18 | 贺高 | 2 | 数学 | 1 | 2 | 78 | | 刘一 | 18 | 周磊 | 4 | 物理 | 1 | 4 | 58 | | 钱二 | 19 | 杨艳 | 3 | 英语 | 2 | 3 | 92 | | 张三 | 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 | | NULL | NULL | NULL | NULL | NULL | NULL | NULL | 93 | +--------+------+--------+------+--------+------+------+-------+ 16 rows in set (0.00 sec)
이 예를 통해 mysql 문에 or 절이 많이 있을 수 있음을 알 수 있습니다.
3.in 문:
mysql> select * from 4a where score in (78,93); +--------+------+--------+------+--------+------+------+-------+ | sname | sage | tname | t | cname | s | c | score | +--------+------+--------+------+--------+------+------+-------+ | 刘一 | 18 | 贺高 | 2 | 数学 | 1 | 2 | 78 | | 李四 | 18 | 周磊 | 4 | 物理 | 4 | 4 | 93 | | 王五 | 17 | 杨艳 | 3 | 英语 | 5 | 3 | 78 | | NULL | NULL | NULL | NULL | NULL | NULL | NULL | 93 | +--------+------+--------+------+--------+------+------+-------+ 4 rows in set (0.00 sec)
mysql> select * from 4a where score in (score>60); Empty set (0.00 sec)
in 문은 특정 레코드나 괄호 안의 레코드만 일치할 수 있지만 논리적으로 일치할 수는 없는 것 같습니다.
mysql> select * from 4a where score>85; +--------+------+--------+------+--------+------+------+-------+ | sname | sage | tname | t | cname | s | c | score | +--------+------+--------+------+--------+------+------+-------+ | 钱二 | 19 | 杨艳 | 3 | 英语 | 2 | 3 | 92 | | 张三 | 17 | 叶平 | 1 | 语文 | 3 | 1 | 91 | | 张三 | 17 | 杨艳 | 3 | 英语 | 3 | 3 | 88 | | 李四 | 18 | 贺高 | 2 | 数学 | 4 | 2 | 88 | | 李四 | 18 | 杨艳 | 3 | 英语 | 4 | 3 | 90 | | 李四 | 18 | 周磊 | 4 | 物理 | 4 | 4 | 93 | | NULL | NULL | NULL | NULL | NULL | NULL | NULL | 93 | +--------+------+--------+------+--------+------+------+-------+ 7 rows in set (0.00 sec)
분명히 where의 기능은 in보다 훨씬 강력하므로 where의 명령 우선순위도 더 높습니다. 동일한 조건에서 where의 검색 범위는 in의 검색 범위보다 약간 더 큽니다. 결국 기능이 많을수록 검색할 항목이 더 많아집니다. 따라서 동일한 쿼리 조건에서 where의 효율성은 in에 비해 약간 떨어지겠지만, 물론 그 정도는 조금밖에 되지 않습니다. 물론 in의 명령 우선순위가 where보다 낮기 때문에 in을 사용할 때 SQL 문에서 오류를 보고할 가능성이 더 높습니다.
and 문:
mysql> select * from 4a where (score>85 and sage=18) and t=2; +--------+------+--------+------+--------+------+------+-------+ | sname | sage | tname | t | cname | s | c | score | +--------+------+--------+------+--------+------+------+-------+ | 李四 | 18 | 贺高 | 2 | 数学 | 4 | 2 | 88 | +--------+------+--------+------+--------+------+------+-------+ 1 row in set (0.00 sec)
이 예를 통해 우리는 mysql 문에 많은 and 절이 있을 수 있음을 알 수 있습니다.
위 내용은 mysql에서 조건부 제한문을 구현한 예 (1)의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!