在单个查询中更新MySQL DB上的多个字段

时间:2015-12-03 12:17:15

标签: mysql

以下是名为employee

的数据库的结构
mysql> desc employee;
+-------------+---------------+------+-----+---------+-------+
| Field       | Type          | Null | Key | Default | Extra |
+-------------+---------------+------+-----+---------+-------+
| emp_code    | int(11)       | NO   | PRI | NULL    |       |
| emp_name    | varchar(25)   | YES  |     | NULL    |       |
| designation | varchar(25)   | YES  |     | NULL    |       |
| department  | varchar(25)   | YES  |     | NULL    |       |
| basic       | decimal(10,2) | YES  |     | NULL    |       |
| DA          | decimal(10,2) | YES  |     | NULL    |       |
| gross_pay   | decimal(10,2) | YES  |     | NULL    |       |
+-------------+---------------+------+-----+---------+-------+

我的问题是,如何为指定 manager 的行更新 DA 值1500,并更新 DA ,所有其他员工的价值为2000。

4 个答案:

答案 0 :(得分:1)

您可以将case用于此目的:

update employees
    set DA = (case when designation = 'manager' then 1500 else 2000 end);

答案 1 :(得分:0)

在更新时使用CASE

UPDATE  employee
SET     DA =
        CASE
        WHEN designation = 'manager' THEN
                '1500'

        WHEN designation = 'employees' THEN
                '2000'
        END

答案 2 :(得分:0)

UPDATE employee
SET DA = CASE 
WHEN designation = "manager" THEN 1500
ELSE 2000
END

答案 3 :(得分:0)

UPDATE employee SET
DA = IF(designation='manager', 1500),
DA = IF(designation='', 1200)
WHERE designation IN('manager', '');

做了一些研究并构建了上述内容。试一试,看看会发生什么。