MySQL中 any,some,all,in的區別

2021-09-26 06:31:00 字數 2916 閱讀 3474

-- 建表

create table emp(

empno int,

ename varchar(50),

job varchar(50),

mgr int,

hiredate date,

sal decimal(7,2),

comm decimal(7,2),

deptno int

) ;-- 插入表資料

insert into emp values(7369,'smith','clerk',7902,'1980-12-17',800,null,20);

insert into emp values(7499,'allen','salesman',7698,'1981-02-20',1600,300,30);

insert into emp values(7521,'ward','salesman',7698,'1981-02-22',1250,500,30);

insert into emp values(7566,'jones','manager',7839,'1981-04-02',2975,null,20);

insert into emp values(7654,'martin','salesman',7698,'1981-09-28',1250,1400,30);

insert into emp values(7698,'blake','manager',7839,'1981-05-01',2850,null,30);

insert into emp values(7782,'clark','manager',7839,'1981-06-09',2450,null,10);

insert into emp values(7788,'scott','analyst',7566,'1987-04-19',3000,null,20);

insert into emp values(7839,'king','president',null,'1981-11-17',5000,null,10);

insert into emp values(7844,'turner','salesman',7698,'1981-09-08',1500,0,30);

insert into emp values(7876,'adams','clerk',7788,'1987-05-23',1100,null,20);

insert into emp values(7900,'james','clerk',7698,'1981-12-03',950,null,30);

insert into emp values(7902,'ford','analyst',7566,'1981-12-03',3000,null,20);

insert into emp values(7934,'miller','clerk',7782,'1982-01-23',1300,null,10);

-- 建表

create table dept(

deptno int,

dname varchar(14),

loc varchar(13)

);-- 插入表資料

insert into dept values(10, 'accounting', 'new york');

insert into dept values(20, 'research', 'dallas');

insert into dept values(30, 'sales', 'chicago');

insert into dept values(40, 'operations', 'boston');

any,in,some,all都應用於子查詢,是子查詢中的關鍵字。

簡單理解:

in:等於其中乙個就為真;

any與some:其中任意乙個條件滿足就為真;

all:滿足所有條件就為真;

其中any與some用法一致,any,some,all可以與比較符一起使用(=等於,< 小於,> 大於,<> 不等於,<= 小於等於,>=大於等於),且any,some和all必須與乙個比較操作符一起使用。

下面通過例項來看下具體用法:

--  1.查詢和scott或clark相同部門的員工姓名ename和雇用日期hiredate

-- 為了方便看結果,我們檢視scott,clark及和他們同部門的員工的全部資訊

select * from emp where deptno in(select deptno from emp where ename="scott" or ename="clark");

select * from emp where deptno = any(select deptno from emp where ename="scott" or ename="clark");

select * from emp where deptno = some(select deptno from emp where ename="scott" or ename="clark");

-- 可以看出語句in 與「=any」是相同的,都表示為其中任意乙個。語句some是any的別名,用法相同。
-- 2.查詢和scott與clark不同部門的員工資訊

select * from emp where deptno not in(select deptno from emp where ename="scott" or ename="clark");

select * from emp where deptno<>all(select deptno from emp where ename="scott" or ename="clark");

可以看出: not in 與 「<>all」等價,都表示全都不。

php中mysql函式 php中mysql有關函式

1.mysql query 一般是用來查詢資料裡面的資料。如 username post name sql select from members where login name username result mysql query sql 以上程式是檢測資料庫中是否存在表單傳送過來的使用者名稱...

mysql中 變數 mysql中的變數

toc 變數 mysql本質是一種程式語言,需要很多變數來儲存資料。mysql中很多的屬性控制都是通過mysql中固有的變數來實現的。系統變數 系統內部定義的變數,系統變數針對所有使用者 mysql客戶端 有效。檢視系統所有變數 show variables like pattern mysql允許...

mysql中 變數 MYSQL中的變數 MySQL

bitscn.com 只記很基礎的知識,細節東西太麻煩了,而且我也用不到。變數分為使用者變數與系統變數。使用者變數 使用者變數與資料庫連線有關,在這個連線中宣告的變數,在連線斷開的時候,就會消失。在此連線中宣告的變數無法在另一連線中使用。使用者變數的變數名的形式為 varname的形式。名字必須以 ...