mysql 中 all any some 用法


-- 建表語句
CREATE TABLE score(
   id INT PRIMARY KEY AUTO_INCREMENT,
   NAME VARCHAR(20),
   SUBJECT VARCHAR(20),
   score INT);

-- 添加數據
INSERT INTO score VALUES
(NULL,'張三','語文',81),
(NULL,'張三','數學',75),
(NULL,'李四','語文',76),
(NULL,'李四','數學',90),
(NULL,'王五','語文',81),
(NULL,'王五','數學',100),
(NULL,'王五 ','英語',90);


-- 用一條 SQL 語句查詢出每門課都大於 80 分的學生姓名
-- 想法:
-- 難點:每門課的分數 -- 解決方案:把分數少於80分的進行排除(not exist

-- not exists 字段
SELECT *
FROM score a 
WHERE NOT EXISTS (SELECT * FROM score b WHERE a.name = b.name AND b.score < 80) ;

-- not in 字段
SELECT *
FROM score 
WHERE NAME NOT IN (SELECT  NAME FROM score WHERE score<=80)

-- all()方法
SELECT DISTINCT NAME 
FROM score a
WHERE 80 < ALL(SELECT score FROM score WHERE a.name = NAME );

ANY關鍵字:

假設any內部的查詢語句返回的結果個數是三個,

那么,

select ...from ... where a>any(...)

等同於

select ...from ... where a > result1 or a > result2 or a > result3

ALL關鍵字:

ALL關鍵字與any關鍵字類似,只不過上面的or改成and。

SOME關鍵字:

some關鍵字和any關鍵字是一樣的功能。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM