mysql - 数据截断: '' While Inserting or Updating Value

标签 mysql sql

我正在尝试插入/更新字符串 (JSON)。插入/更新值时出现数据截断错误。

我尝试创建 JSON 类型列并传递 JSON_OBJECT() 类型,但也失败了。

select '''[{"id":"1202","title":"Asian","notes":"","active":"1"}]''';

CREATE TABLE mktesttable (
    id int NOT NULL,
    s VARCHAR(34530) NOT NULL
);

INSERT INTO mktesttable
select 1, '''[{"id":"1202","title":"Asian","notes":"","active":"1"}]''';

select *  from mktesttable;

//有效

<小时/>
INSERT INTO mktesttable
SELECT 
    patient_data.id, 
    CONCAT(
        '''[{"id":"',   patient_data.race,
        '","title":"',  list_options.title, 
        '","notes":"',  list_options.notes, 
        '","active":"', list_options.active,
        '"}]'''
    ) as s
FROM 
    patient_data 
    INNER JOIN list_options 
        ON patient_data.race = list_options.id order by 1 desc

产生相同的结果(ID 和数据不同)但不起作用

Result Set

最佳答案

如果要存储 JSON 对象,应使用 JSON 数据类型而不是字符串。要创建 JSON 对象,您可以使用 JSON_OBJECT

CREATE TABLE mktesttable (
    id int NOT NULL,
    s JSON NOT NULL
);

INSERT INTO mktesttable
SELECT 
    patient_data.id, 
    JSON_OBJECT(
        'id',     patient_data.race,
        'title',  list_options.title, 
        'notes',  list_options.notes, 
        'active', list_options.active,
    )
FROM 
    patient_data 
    INNER JOIN list_options 
        ON patient_data.race = list_options.id 
ORDER BY patient_data.id desc

如果您需要示例数据中所示的 JSON 数组,则:

    JSON_ARRAY(
        JSON_OBJECT(
            'id',     patient_data.race,
            'title',  list_options.title, 
            'notes',  list_options.notes, 
            'active', list_options.active,
        )
    )

关于mysql - 数据截断: '' While Inserting or Updating Value,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54543752/

相关文章:

java - 无法提取结果集

python - 系统错误: 10054 An existing connection was forcibly closed by the remote host in python

android - 我在此查询中得到 0 个结果。我究竟做错了什么? (安卓)

sql - Documentum 查询语言内部联接

php - IF 语句、IF 函数还是 CASE?

mysql - 为什么 App Engine + Google Cloud SQL 会出现 "communication link failure"?

mysql - Sails.js:生产环境 + sails-mysql - 提升时未创建数据库表

php - MYSQL + PHP 每天执行一个sql

java - 如何从 Android 中的 SQLite 表中删除行

c# - 如何将 100 行插入到只有标识列的单个表中?