sql in 查询匹配多个字段

博客介绍了SQL中SELECT IN关键字的使用,包括查询匹配单个字段和多个字段,指出匹配多个字段很方便实用,同时提醒该功能需MySQL 8+版本支持。

时间:2022-02-15 09:07:32

咱们常用的语法:

select in关键字查询匹配单个字段

select id from table where name in('name1','name2')

select in关键字查询匹配多个字段

select id from table where (num,name) in ((num1,'name1'),(num2,'name2'))

匹配多个字段,关键时刻还是挺好用的。很方便。

 

1aaea36e37ec6ec1c7a19d9adb1b4803.png

 

6033595f4a0da0e95b7b031f435cac5a.png

 

 

注意:mysql版本8+以上才支持

 

SQL 中,根据查询结果更新多个字段通常使用`UPDATE`语句结合`JOIN`或者子查询。以下分别介绍这两种常见的实现方式。 ### 使用`JOIN`进行更新 假设存在两个表,一个是`orders`表,包含字段`order_id`、`product_name`、`quantity`和`price`;另一个是`products`表,包含字段`product_name`和`new_price`。现在需要根据`products`表中的`new_price`更新`orders`表中对应产品的`price`字段,同时更新`quantity`字段为固定值 10。 ```sql UPDATE orders JOIN products ON orders.product_name = products.product_name SET orders.price = products.new_price, orders.quantity = 10; ``` 上述代码中,通过`JOIN`将`orders`表和`products`表根据`product_name`字段进行关联,然后使用`SET`子句更新`orders`表中的`price`和`quantity`字段。 ### 使用子查询进行更新 假设要根据一个子查询的结果更新`employees`表中的`salary`和`department_id`字段。子查询从`departments`表中获取特定部门的最新信息。 ```sql UPDATE employees SET salary = (SELECT new_salary FROM departments WHERE departments.department_id = employees.department_id), department_id = (SELECT new_department_id FROM departments WHERE departments.department_id = employees.department_id) WHERE EXISTS (SELECT 1 FROM departments WHERE departments.department_id = employees.department_id); ``` 上述代码中,使用子查询从`departments`表中获取最新的`new_salary`和`new_department_id`,然后更新`employees`表中的`salary`和`department_id`字段。`WHERE EXISTS`子句用于确保只更新存在匹配记录的行。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值