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