sql 中針對(duì)多個(gè)字段使用 in 操作符有兩種方法:通過(guò)子查詢(xún)或直接列出多個(gè)值。子查詢(xún)用于從其他查詢(xún)中檢索值,而多個(gè)值可以用逗號(hào)分隔直接列出。in 操作符檢查給定值是否在指定值的列表中。
SQL 中多個(gè)字段中的 IN 用法
IN 操作符用于檢查給定值是否在指定值的列表中。當(dāng)需要檢查多個(gè)字段時(shí),可以在 IN 操作符中使用子查詢(xún)或多個(gè)值。
子查詢(xún)
子查詢(xún)是一種嵌套查詢(xún),用于從數(shù)據(jù)庫(kù)中檢索數(shù)據(jù)。它可以在 IN 操作符中使用,將多個(gè)字段的值與其比較。語(yǔ)法如下:
<code class="sql">SELECT * FROM table_name WHERE (column1, column2, ...) IN ( SELECT column1, column2, ... FROM subquery );</code>
登錄后復(fù)制
例如:
<code class="sql">SELECT * FROM orders WHERE (order_id, customer_id) IN ( SELECT order_id, customer_id FROM order_details );</code>
登錄后復(fù)制
多個(gè)值
也可以在 IN 操作符中指定多個(gè)值,用逗號(hào)分隔。語(yǔ)法如下:
<code class="sql">SELECT * FROM table_name WHERE (column1, column2, ...) IN (value1, value2, ...);</code>
登錄后復(fù)制
例如:
<code class="sql">SELECT * FROM customers WHERE (first_name, last_name) IN ('John', 'Doe');</code>
登錄后復(fù)制
示例
考慮一個(gè)包含以下數(shù)據(jù)的表 orders
:
order_id | customer_id | product_id |
---|---|---|
101 | 1 | 201 |
102 | 1 | 301 |
103 | 2 | 201 |
104 | 2 | 302 |
要找出訂購(gòu)了產(chǎn)品 201 或 302 的客戶(hù),可以使用 IN 操作符:
<code class="sql">SELECT * FROM orders WHERE (product_id) IN (201, 302);</code>
登錄后復(fù)制
輸出將是:
order_id | customer_id | product_id |
---|---|---|
101 | 1 | 201 |
102 | 1 | 301 |
103 | 2 | 201 |
104 | 2 | 302 |