MySQL中any、some和all的用法實(shí)例
一、any,some,all
any,some,all 是 MySQL 當(dāng)中的邏輯運(yùn)算符,作用是將子查詢返回的單列值的集合與查詢的單個(gè)值作比較。
any,all,some 前面需跟比較運(yùn)算符(>, >=, <, <=, !=, =,但是這里的單個(gè)使用 = 號(hào)的情況只有子集的數(shù)據(jù)是單個(gè)值或者子集數(shù)據(jù)全部相同才能符合情況,如果子集是多個(gè)不同的就不滿足,根據(jù)實(shí)際情況使用)
mysql> select * from chat_communication; +----+--------+------------------+------+------------------+--------------+------------+--------+--------+------+ | id | fromid | fromname | toid | toname | content | time | shopid | isread | type | +----+--------+------------------+------+------------------+--------------+------------+--------+--------+------+ | 1 | 85 | Love violet life | 87 | 大金 | 你好 | 1517888705 | NULL | 1 | 1 | | 2 | 87 | 大金 | 85 | Love violet life | 你也好 | 1517888712 | NULL | 1 | 1 | | 3 | 89 | 雨薇 | 87 | 大金 | 你在干嘛 | 1517888760 | NULL | 1 | 1 | | 4 | 85 | Love violet life | 87 | 大金 | 你還在嗎 | 1517888797 | NULL | 0 | 1 | | 5 | 85 | Love violet life | 87 | 大金 | 訂單 | 1517888872 | NULL | 0 | 1 | +----+--------+------------------+------+------------------+--------------+------------+--------+--------+------+ 5 rows in set (0.00 sec)
all 邏輯運(yùn)算符
例如:select …from …where c > all(…)
表示 c 列中的值必須要大于子查詢集的每一個(gè)值,即必須要大于子查詢集的最大值;
如果是小于號(hào)即小于子查詢集的最小值。同理可以推出其它的比較運(yùn)算符的情況。
示例:列中的值必須要大于子查詢集的每一個(gè)值。
查詢 fromid 大于 fromid = 85 所有數(shù)據(jù)。
SELECT * FROM chat_communication WHERE fromid > ALL ( SELECT fromid FROM chat_communication WHERE fromid = 85 );
+----+--------+----------+------+------------------+--------------+------------+--------+--------+------+ | id | fromid | fromname | toid | toname | content | time | shopid | isread | type | +----+--------+----------+------+------------------+--------------+------------+--------+--------+------+ | 2 | 87 | 大金 | 85 | Love violet life | 你也好 | 1517888712 | NULL | 1 | 1 | | 3 | 89 | 雨薇 | 87 | 大金 | 你在干嘛 | 1517888760 | NULL | 1 | 1 | +----+--------+----------+------+------------------+--------------+------------+--------+--------+------+ 2 rows in set (0.01 sec)
any 和 some 運(yùn)算符
any 和 some 作用是一樣的。
例如
select…from…where c > any(…)
或者
select …from …where c > some(…)
表示 c 列中的值要大于子查詢中的任意一個(gè)值,即必須要大于子查詢集中的最小值。同理可以推出其它的比較運(yùn)算符的情況。
示例: 查詢 fromid = 87 至少大于 fromid = 85 的數(shù)據(jù)
SELECT * FROM chat_communication WHERE fromid = 87 AND fromid > ANY ( SELECT fromid FROM chat_communication WHERE fromid = 85 );
+----+--------+----------+------+------------------+-----------+------------+--------+--------+------+ | id | fromid | fromname | toid | toname | content | time | shopid | isread | type | +----+--------+----------+------+------------------+-----------+------------+--------+--------+------+ | 2 | 87 | 大金 | 85 | Love violet life | 你也好 | 1517888712 | NULL | 1 | 1 | +----+--------+----------+------+------------------+-----------+------------+--------+--------+------+ 1 row in set (0.00 sec)
SELECT * FROM chat_communication WHERE fromid = 87 AND fromid > SOME ( SELECT fromid FROM chat_communication WHERE fromid = 85 );
+----+--------+----------+------+------------------+-----------+------------+--------+--------+------+ | id | fromid | fromname | toid | toname | content | time | shopid | isread | type | +----+--------+----------+------+------------------+-----------+------------+--------+--------+------+ | 2 | 87 | 大金 | 85 | Love violet life | 你也好 | 1517888712 | NULL | 1 | 1 | +----+--------+----------+------+------------------+-----------+------------+--------+--------+------+ 1 row in set (0.00 sec)
總結(jié)
到此這篇關(guān)于MySQL中any、some和all用法的文章就介紹到這了,更多相關(guān)MySQL any、some和all用法內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
mysql 數(shù)據(jù)同步 出現(xiàn)Slave_IO_Running:No問題的解決方法小結(jié)
mysql replication 中slave機(jī)器上有兩個(gè)關(guān)鍵的進(jìn)程,死一個(gè)都不行,一個(gè)是slave_sql_running,一個(gè)是Slave_IO_Running,一個(gè)負(fù)責(zé)與主機(jī)的io通信,一個(gè)負(fù)責(zé)自己的slave mysql進(jìn)程。2011-05-05
MySQL中使用JSON存儲(chǔ)數(shù)據(jù)的實(shí)現(xiàn)示例
本文主要介紹了MySQL中使用JSON存儲(chǔ)數(shù)據(jù)的實(shí)現(xiàn)示例,我們可以在MySQL中直接存儲(chǔ)、查詢和操作JSON數(shù)據(jù),具有一定的參考價(jià)值,感興趣的可以了解一下2023-09-09
MySQL索引優(yōu)化之適合構(gòu)建索引的幾種情況詳解
我們知道正確的建立索引可以加快數(shù)據(jù)庫的查詢,但是如果索引建立不當(dāng),或者隨意的建立過多索引不僅不會(huì)提升數(shù)據(jù)庫的效率,反而在進(jìn)行數(shù)據(jù)更新操作的時(shí)候需要耗費(fèi)系統(tǒng)資源對索引進(jìn)行維護(hù),同時(shí)占用大量的存儲(chǔ)空間來對索引進(jìn)行存儲(chǔ),本文主要講述在哪些情況下適合建立索引2022-07-07
MySQL的的數(shù)據(jù)一致性保障與延遲問題處理
在分布式數(shù)據(jù)庫和高并發(fā)應(yīng)用場景下,數(shù)據(jù)一致性 和 數(shù)據(jù)延遲 是兩個(gè)不可忽視的問題,MySQL 作為廣泛使用的關(guān)系型數(shù)據(jù)庫,提供了多種機(jī)制來保障數(shù)據(jù)一致性,本文將深入探討 MySQL 如何保障數(shù)據(jù)一致性 以及 應(yīng)對數(shù)據(jù)延遲的策略,需要的朋友可以參考下2025-03-03

