gpt4 book ai didi

mysql - 如何更新表中特定行的列?

转载 作者:行者123 更新时间:2023-11-29 15:42:35 25 4
gpt4 key购买 nike

我想更新由 WHERE 命令指定的行的列,但我想以一种方式更新我的字段,即从每个指定字段中提取字符串的数字部分,然后将其乘以数字(我将指定),并在该列中的 WHERE 命令提取的所有特定字段中给出数字输出。

例如,假设我想更新列中的所有字段,例如 (5.6 AUD/1000, 4.5 AUD/1000, 9.7 AUD/1000),所以我想首先确定以 /1000 结尾的字段,并通过将字符串的数字部分(即 5.6、4.5、9.7)乘以任意数字(假设为 10)来仅更新列中的那些字段。我希望该列上的其他字段保持不变。

SELECT * from sorted WHERE Column8  REGEXP '/1000$'; 

为我提供了我希望更新的所有特定字段。但我想按照上面指定的方式更新它们,即我想从字符串中提取数字部分并将其与数字相乘,然后仅更新这些字段。

我能够提取符合我提到的条件的所有字段,但我在更新列中的这些字段时遇到困难。

从已排序的 WHERE Column8 REGEXP '/1000$' 中选择 *;

SELECT CAST(Column8 AS UNSIGNED)*10 FROM sorted
wHERE
column8 REGEXP '/1000$';

上面的代码为我提供了所需的更新字段,但我希望它们反射(reflect)在我的专栏中。

我希望我的输出是一列,其中只有那些以“/1000”结尾的字段应该以字符串的数字部分乘以 10 的方式进行更新。

最佳答案

我已将名为 string 的 varchar 字段转换为十进制类型并乘以静态值 10 。我已经检查过sql server。

DECLARE @temp TABLE
(
string NVARCHAR(50)
)

INSERT INTO @temp (string)
VALUES
('5.6 AUD/1000'),
('4.5 AUD/1000'),
('9.7 AUD/1000')

select cast(left(string, patindex('%[^0-9./]%', string) - 1) As decimal(18,2))* 10
from @temp

关于mysql - 如何更新表中特定行的列?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57448131/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com