我如何将JSON子值转换为MySQL中的整数?



我现在有这个

UPDATE {$table}
SET
{$column} = JSON_SET(
{$column},
'$.{$jsonKey}',
{$column}->>'$.{$jsonKey}' * 100
)

但是json中的值将是双精度类型。我希望它是一个整数下面的代码会导致语法错误。

UPDATE {$table}
SET
{$column} = JSON_SET(
{$column},
'$.{$jsonKey}',
{$column}->> CAST('$.{$jsonKey}' * 100 AS UNSIGNED)
)

您可以将JSON_EXTRACT与JSON_SET组合,然后将提取的值强制转换为Integer

UPDATE {$table}
SET
{$column} = JSON_SET(
{$column},
'$.{$jsonKey}',
CAST(JSON_EXTRACT({$column}, '$.{$jsonKey}') * 100 AS UNSIGNED)
)

最新更新