目錄
基本語法
1。用值列表過濾
2。使用字符串和日期
3。不使用不排除值
4。使用in in in in
要記住的要點
示例:與其他條件結合
首頁 資料庫 mysql教程 如何在MySQL中使用IN運算符?

如何在MySQL中使用IN運算符?

Aug 12, 2025 pm 03:46 PM
mysql IN操作符

MySQL中的運算符檢查值是否匹配指定列表中的任何內容,從而簡化了多個或條件;它可以與文字,字符串,日期和子征服一起使用,提高查詢可讀性,在索引列上表現良好,支持不加入(謹慎對零),並且可以與其他條件結合使用,這對於在SQL查詢中有效過濾至關重要。

如何在MySQL中使用IN運算符?

MySQL中的IN符用於檢查一個值是否匹配列表中的任何值。這是在WHERE子句中替換多個OR條件的方便方法。這是有效使用它的方法。

基本語法

選擇column_name(s)
來自table_name
其中column_name在(value1,value2,...)中;

這相當於:

其中column_name = value1或column_name = value2或...

1。用值列表過濾

您可以使用列匹配幾個指定值中的任何一個,以檢索IN

從員工中選擇 *
在(1、3、5)中的depptity_id;

這選擇了在第1、3或5部門工作的所有員工,比編寫三個單獨OR條件要乾淨得多。

2。使用字符串和日期

IN符與任何數據類型一起使用,包括字符串和日期。

從客戶中選擇 *
在(“美國”,“加拿大”,“墨西哥”)中的國家;
從訂單中選擇 *
其中order_date在('2023-09-01','2023-09-02','2023-09-03')中;

只需確保將引號用於字符串和日期值即可。

3。不使用不排除值

要查找與列表中任何值匹配的記錄,請NOT IN使用。

從產品中選擇 *
其中不在(2,4)中的category_id;

這將返回不在2類或4類中的產品。

⚠️請小心不要列表包含NULLNOT IN 。如果IN中的任何值為NULLNOT IN返回任何結果,因為SQL邏輯中UNKNOWN NULL收益率的比較。

4。使用in in in in

IN中最有力的用途之一是帶有子查詢。

從客戶中選擇 *
where customer_id in(從金額> 1000的訂單中選擇customer_id);

這找到了所有至少下訂單超過$ 1000的客戶。

該子查詢首先運行,返回客戶ID列表,外部查詢IN匹配它們。

要記住的要點

  • 與多個OR條件相比, IN運算符可提高可讀性並降低代碼長度。
  • 對於大多數MySQL校正(例如utf8mb4_general_ci ),這對字符串不敏感,但這取決於您的列的整理設置。
  • 性能通常很好,尤其是當列索引時。對於非常大的列表,請考慮使用臨時表或JOIN
  • NOT IN使用可能返回NULL可無效列或子徵物 - 在這種情況下NOT EXISTS更安全的結果。

示例:與其他條件結合

選擇員工的薪水,薪水
在(1,2)
  薪金> 50000;

這顯示了1或2部門的員工收入超過50,000美元。

基本上,通過一組值(無論是文字值還是來自子查詢)簡化IN ,並且是日常MySQL查詢中的主食。

以上是如何在MySQL中使用IN運算符?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn

熱AI工具

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Clothoff.io

Clothoff.io

AI脫衣器

Video Face Swap

Video Face Swap

使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱工具

記事本++7.3.1

記事本++7.3.1

好用且免費的程式碼編輯器

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

禪工作室 13.0.1

禪工作室 13.0.1

強大的PHP整合開發環境

Dreamweaver CS6

Dreamweaver CS6

視覺化網頁開發工具

SublimeText3 Mac版

SublimeText3 Mac版

神級程式碼編輯軟體(SublimeText3)

熱門話題

Laravel 教程
1605
29
PHP教程
1510
276
優化MySQL用於財務數據存儲 優化MySQL用於財務數據存儲 Jul 27, 2025 am 02:06 AM

MySQL用於金融系統需優化四個關鍵點:1.金融數據必須使用DECIMAL類型確保精度,時間字段使用DATETIME避免時區問題;2.索引設計要合理,避免頻繁更新字段建索引,組合索引按查詢順序排列並定期清理無用索引;3.使用事務確保一致性,控制事務粒度,避免長事務和非核心操作嵌入其中,並根據業務選擇合適隔離級別;4.對歷史數據按時間分區、歸檔冷數據並使用壓縮表,提升查詢效率並優化存儲。

優化MySQL用於實時數據提要 優化MySQL用於實時數據提要 Jul 26, 2025 am 05:41 AM

TooptimizeMySQLforreal-timedatafeeds,firstchoosetheInnoDBstorageenginefortransactionsandrow-levellocking,useMEMORYorROCKSDBfortemporarydata,andpartitiontime-seriesdatabytime.Second,indexstrategicallybyonlyapplyingindexestoWHERE,JOIN,orORDERBYcolumns,

用對象級特權確保MySQL 用對象級特權確保MySQL Jul 29, 2025 am 01:34 AM

TosecureMySQLeffectively,useobject-levelprivilegestolimituseraccessbasedontheirspecificneeds.Beginbyunderstandingthatobject-levelprivilegesapplytodatabases,tables,orcolumns,offeringfinercontrolthanglobalprivileges.Next,applytheprincipleofleastprivile

管理大型MySQL表的最佳實踐 管理大型MySQL表的最佳實踐 Aug 05, 2025 am 03:55 AM

處理大表時,MySQL性能和可維護性面臨挑戰,需從結構設計、索引優化、分錶策略等方面入手。 1.合理設計主鍵和索引:推薦使用自增整數作為主鍵以減少頁分裂;使用覆蓋索引提升查詢效率;定期分析慢查詢日誌並刪除無效索引。 2.分區表的合理使用:按時間範圍等策略分區,提升查詢和維護效率,但需注意分區裁剪問題。 3.考慮讀寫分離和分庫分錶:讀寫分離緩解主庫壓力,分庫分錶適用於數據量極大場景,建議使用中間件並評估事務和跨庫查詢問題。前期規劃和持續優化是關鍵。

實施MySQL數據庫複製過濾器 實施MySQL數據庫複製過濾器 Jul 28, 2025 am 02:36 AM

MySQL複製過濾可在主庫或從庫端配置,主庫端通過binlog-do-db或binlog-ignore-db控制binlog生成,適用於減少日誌體積;從庫端通過replicate-do-db、replicate-ignore-db、replicate-do-table、replicate-ignore-table及通配符規則replicate-wild-do-table和replicate-wild-ignore-table控制數據應用,更靈活且利於數據恢復;配置時需注意規則順序、跨庫語句行為、

優化內容管理系統(CMS)的MySQL 優化內容管理系統(CMS)的MySQL Jul 28, 2025 am 03:19 AM

ToimproveMySQLperformanceforCMSplatformslikeWordPress,firstimplementacachinglayerusingpluginslikeRedisorMemcached,enableMySQLquerycaching(ifapplicable),andusepagecachingpluginstoservestaticfiles.Second,optimizeMySQLconfigurationbyincreasinginnodb_buf

MySQL中的截斷,刪除和掉落有什麼區別? MySQL中的截斷,刪除和掉落有什麼區別? Aug 05, 2025 am 09:39 AM

DELETEremovesspecificorallrows,keepstablestructure,allowsrollbackandtriggers,anddoesnotresetauto-increment;2.TRUNCATEquicklyremovesallrows,resetsauto-increment,cannotberolledbackinmostcases,doesnotfiretriggers,andkeepstablestructure;3.DROPremovesthee

如何故障排除常見的mySQL連接錯誤? 如何故障排除常見的mySQL連接錯誤? Aug 08, 2025 am 06:44 AM

檢查MySQL服務是否運行,使用sudosystemctlstatusmysql確認並啟動;2.確保bind-address設置為0.0.0.0以允許遠程連接,並重啟服務;3.驗證3306端口是否開放,通過netstat檢查並配置防火牆規則允許該端口;4.對於“Accessdenied”錯誤,需核對用戶名、密碼和主機名,登錄MySQL後查詢mysql.user表確認權限,必要時創建或更新用戶並授權,如使用'your_user'@'%';5.若因caching_sha2_password導致認證失

See all articles