2016-11-19 49 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更難 –