You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在SQLite3中直接更新JSON字段添加新客户数据?

解决方案

要直接用SQLite语句完成JSON数组的追加,你需要使用SQLite 3.38.0及以上版本提供的JSON_ARRAY_APPEND和JSON_OBJECT函数,具体语句如下:

UPDATE your_table_name
SET data = JSON_ARRAY_APPEND(
    data,
    '$.customers',
    JSON_OBJECT('name', ?, 'number', ?)
)
WHERE id = 1;

说明:

  • JSON_ARRAY_APPEND(data, '$.customers', ...):指定在data列的customers数组末尾追加新元素
  • JSON_OBJECT('name', ?, 'number', ?):构造新的客户JSON对象,用占位符?绑定变量,避免SQL注入风险
  • WHERE id = 1:定位到需要更新的行(可根据实际需求调整条件)

结合PHP代码示例(适配你的变量):

如果你用PHP的SQLite3扩展,可以这样执行:

$db = new SQLite3('your_database.db');
$new_customer_name = "test3";
$new_customer_number = "3333";

$stmt = $db->prepare("
    UPDATE your_table_name
    SET data = JSON_ARRAY_APPEND(
        data,
        '$.customers',
        JSON_OBJECT('name', :name, 'number', :number)
    )
    WHERE id = 1
");
$stmt->bindValue(':name', $new_customer_name, SQLITE3_TEXT);
$stmt->bindValue(':number', $new_customer_number, SQLITE3_INTEGER); // 若number为字符串类型,替换为SQLITE3_TEXT
$stmt->execute();

执行后,id=1的data列会成功追加新客户对象,得到你想要的JSON结构。

内容的提问来源于stack exchange,提问作者alpha acem3

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.02 09:05:14