【问题标题】:ERROR 1054 (42S22): Unknown column错误 1054 (42S22):未知列
【发布时间】:2017-03-17 21:11:15
【问题描述】:

我正在尝试执行查询。它正在抛出错误。

我有一个字典格式的值,我需要给它一个字符串来执行查询。即使它抛出一个错误。

下面是查询:

mysql> INSERT INTO wf_alti_scheduler_vijay (status,display_message,modified_on,exec_sequence,input_file_path,query_file_path,is_active,aws_destination_info,created_on,result_type,project,platform,scheduled_at,project_batch,frequency,output_file_path,env,next_schedule,kv_json,id,user) VALUES (-1.0,"test query","2016-10-24 13:15:35",1.0,"na","/home/viren/viru/workflow_dev/query/new_repeat_cust_current_month.sql",1.0,"na","2016-10-15 23:59:59","FILE","onyx_dev","HIVE","2016-10-15 23:59:59","onyx_monthly","monthly","/home/viren/viru/workflow_dev/op","dev","2016-11-15 23:59:59",{"QRY_PARAM_KEY_LIST": "PARAM_CURRENT_MONTH_START_DATE~PARAM_CURRENT_MONTH_END_DATE", "QRY_PARAM_VALUE_LIST": "20160901~20160930"},1.0,"virendhar");

ERROR 1054 (42S22): Unknown column {"QRY_PARAM_KEY_LIST": "PARAM_CURRENT_MONTH_START_DATE~PARAM_CURRENT_MONTH_END_DATE", "QRY_PARAM_VALUE_LIST": "20160901~20160930"} in 'field list'

除上述之外,所有值均使用字符串格式给出。如何以字符串格式给出它来执行查询。有人可以帮忙吗?

【问题讨论】:

  • 请发布创建表命令
  • 运行SHOW CREATE TABLE wf_alti_scheduler_vijay,然后返回

标签: mysql


【解决方案1】:

MySQL 5.7.8 支持原生 JSON 数据类型。因此,您可以将其用于上述列。

还为json数据的开始和结束添加(')如下:

INSERT INTO wf_alti_scheduler_vijay (status,display_message,modified_on,exec_sequence,input_file_path,query_file_path,is_active,aws_destination_info,created_on,result_type,project,platform,scheduled_at,project_batch,frequency,output_file_path,env,next_schedule,kv_json,id,user) VALUES (-1.0,"test query","2016-10-24 13:15:35",1.0,"na","/home/viren/viru/workflow_dev/query/new_repeat_cust_current_month.sql",1.0,"na","2016-10-15 23:59:59","FILE","onyx_dev","HIVE","2016-10-15 23:59:59","onyx_monthly","monthly","/home/viren/viru/workflow_dev/op","dev","2016-11-15 23:59:59",'{"QRY_PARAM_KEY_LIST": "PARAM_CURRENT_MONTH_START_DATE~PARAM_CURRENT_MONTH_END_DATE", "QRY_PARAM_VALUE_LIST": "20160901~20160930"}',1.0,"virendhar");

For Eg:INSERT INTO t1 VALUES('{"key1": "value1", "key2": "value2"}');

参考:https://dev.mysql.com/doc/refman/5.7/en/json.html

【讨论】:

    【解决方案2】:

    每当某些 json 数据输入到值 {"name":"kiran"} 之类的列时,请尝试输入为 '{\"name\":\"kiran\"}'。在您的情况下,数据

    {"QRY_PARAM_KEY_LIST": "PARAM_CURRENT_MONTH_START_DATE~PARAM_CURRENT_MONTH_END_DATE", "QRY_PARAM_VALUE_LIST": "20160901~20160930"} 
    

    应该输入为

    '{\"QRY_PARAM_KEY_LIST\": \"PARAM_CURRENT_MONTH_START_DATE~PARAM_CURRENT_MONTH_END_DATE\", \"QRY_PARAM_VALUE_LIST\": \"20160901~20160930\"}'
    

    试试这个查询

    INSERT INTO wf_alti_scheduler_vijay (status,display_message,modified_on,exec_sequence,input_file_path,query_file_path,is_active,aws_destination_info,created_on,result_type,project,platform,scheduled_at,project_batch,frequency,output_file_path,env,next_schedule,kv_json,id,user) VALUES (-1.0,"test query","2016-10-24 13:15:35",1.0,"na","/home/viren/viru/workflow_dev/query/new_repeat_cust_current_month.sql",1.0,"na","2016-10-15 23:59:59","FILE","onyx_dev","HIVE","2016-10-15 23:59:59","onyx_monthly","monthly","/home/viren/viru/workflow_dev/op","dev","2016-11-15 23:59:59",'{\"QRY_PARAM_KEY_LIST\": \"PARAM_CURRENT_MONTH_START_DATE~PARAM_CURRENT_MONTH_END_DATE\", \"QRY_PARAM_VALUE_LIST\": \"20160901~20160930\"}',1.0,"virendhar")
    

    如果您仍然遇到任何错误,请检查表的结构并重试。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-05-14
      • 2011-03-22
      • 2018-05-31
      • 2018-03-31
      • 1970-01-01
      • 2022-06-17
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多