-1

IFステートメントを使用して MySQL クエリを作成する必要があります。データベース スキーマは次のとおりです。

CREATE DATABASE my_db;
USE my_db;
CREATE TABLE IF NOT EXISTS if_table(
    id INTEGER unsigned,
    field_1 INTEGER unsigned,
    field_2 INTEGER unsigned,
    field_3 INTEGER unsigned,
    PRIMARY KEY (id)
);

UPDATE次の擬似コードに対応するクエリを作成するにはどうすればよいですか?

if field_2 equals 0 then field_1 = field_1 + 1
else field_3 = field_3 + 2 
where id == 1
4

2 に答える 2

4

このインラインIFステートメントを試してください

SELECT IF(field_2 = 0, field_1 + 1, field_3 + 2) AS `Result`
FROM tableName
WHERE ID = 1

または、値を更新する場合は、

UPDATE tableName
SET field_1 = IF(field_2 = 0, field_1 + 1, field_1),  
    field_3 = IF(field_2 = 0, field_3, field_3 + 2)
WHERE ID = 1
于 2012-09-18T03:09:16.357 に答える
1

あなたは2つのクエリでそれを行うことができます。

UPDATE table_name SET field_1 = field_1 + 1 WHERE id = 1 AND field_2 = 0;
UPDATE table_name SET field_3 = field_3 + 2 WHERE id = 1 AND field_2 != 0;

クエリが1つだけ必要な場合は、

UPDATE table_name
SET field_1 = IF(field_2 = 0, field_1 + 1, field_1),
SET field_3 = IF(field_2 = 0, field_3, field_3 + 2),
WHERE ID = 1
于 2012-09-18T03:15:31.280 に答える