2016-11-19 50 views
0
set @v1 = "'city', 'ITY', 'age', '20'"; 
select @v1; 
insert into test values (11, 'hidy', column_create(@v1)); 

MariaDB的不支持的插件的形式这一变量,在MariaDB的插入动态列

client Error at)) 
MariaDB :10.1.19 
client :heidi 9.4.0.5130 
OS: Windows 10 

我怎样才能在变量的形式插入?因为我想在我的JAVA中使用JDBC来传递参数

+0

需要改进格式 – Vickyexpert

回答

0

您可以使用INSERT的预处理语句。

MariaDB [test]> set @v1 = "'city', 'ITY', 'age', '20'"; 
Query OK, 0 rows affected (0.01 sec) 

MariaDB [test]> set @q = concat("insert into test values(11, 'hidy', column_create(",@v1,"))"); 
Query OK, 0 rows affected (0.00 sec) 

MariaDB [test]> select @q; 
+--------------------------------------------------------------------------------+ 
| @q                    | 
+--------------------------------------------------------------------------------+ 
| insert into test values(11, 'hidy', column_create('city', 'ITY', 'age', '20')) | 
+--------------------------------------------------------------------------------+ 
1 row in set (0.00 sec) 

MariaDB [test]> prepare stmt from @q; 
Query OK, 0 rows affected (0.00 sec) 
Statement prepared 

MariaDB [test]> execute stmt; 
Query OK, 1 row affected (0.26 sec) 

MariaDB [test]> select column_get(b,'city' as char(8)) from test; 
+---------------------------------+ 
| column_get(b,'city' as char(8)) | 
+---------------------------------+ 
| ITY        | 
+---------------------------------+ 
1 row in set (0.00 sec) 
+0

谢谢。这样得到的JSON值比MYSQL更难 –