您好我正在尝试运行查询以在同一列中查找两个值,比较它们并将最高值设置为两者并且我有点困惑。
我无法弄清楚如何以漂亮的方式做到这一点,所以我采取了一种丑陋的方法,但仍然迷失了。
我有一个表格,数据有点像这样
Fruitname Fruitvalue
Apples 11
Pears 10
Oranges 2
我希望能够查询表并获取Apples和Pears的值。然后我想根据最高值
替换苹果或梨的价值喜欢这个
Fruitname Fruitvalue
Apples 11
Pears 11
Oranges 2
以下代码为我提供了最高价值
SELECT MAX (fruitvalue)
FROM fruit
WHERE fruitname IN ('apple','pear')
但我可以弄清楚如何将结果转换为变量并将其分配给fruitname。
例如
$variable = SELECT MAX (fruitvalue) FROM fruit WHERE fruitname IN ('apple','pear')
UPDATE fruittable SET fruitvalue = '$variable' WHERE fruitname = 'apple';
UPDATE fruittable SET fruitvalue = '$variable' WHERE fruitname = 'pears';
答案 0 :(得分:0)
不需要变量,您可以使用select直接在update
语句中获取最大值。
update fruittable
set fruitvalue = (SELECT MAX (fruitvalue)
FROM fruit
WHERE fruitname IN ('apple','pear'));
where fruitname in ('apple', 'pear');
这是有效的,因为子选择只返回一行。