如何在MySQL中使用JSON参数调用存储过程?

时间:2018-12-25 13:43:50

标签: mysql stored-procedures

这是存储过程,它被调用

存储过程(测试)

expensiveToffee3 = Box (Candy {name="Toffee",price=2})


存储过程调用进行测试

BEGIN


  DECLARE Query1 VARCHAR(500);  
    ...
    ...

   SET @Query1 = CONCAT('INSERT INTO tblName (col1, col2)   values("',v_value1,'","',v_value2,'")'
    ); 

  PREPARE 
    stmt 
  FROM 
    @Query1;
  EXECUTE 
    stmt;

当我尝试以下操作时,它可以正常工作,但是当我尝试使用双引号以上的参数时,它却无法工作

CALL test( "abc",'{"pqr":true,"xyz":false}' );


错误

  

1064-您的SQL语法有错误;检查与您的MariaDB服务器版本相对应的手册以使用正确的语法   靠近“ pqr”:true,“ xyz”:false'

1 个答案:

答案 0 :(得分:0)

即使回答迟了...

这与MySQL处理引号的方式有关

只要您在单引号中包含一些内容,MySQL就会将其视为字符串。

例如:

“ 1”-如果将其插入整数,则可以将其视为整数 字段...

但是

'1'-无论如何都将被视为字符串。