【发布时间】:2014-01-28 03:10:27
【问题描述】:
我写了这个 sql 语句:
SELECT concat(
'INSERT INTO dev_sys_index (name,tableid,descrition) VALUES (idx_',
name,
',',
id,
',eindeutige Kombination aus abfid und parentid);')
FROM dev_sys_tables
WHERE datenmodell=350
但是输出只是一堵十六进制数字,因为id 是一个整数。我尝试了很多方法,例如将 id 转换为字符串 CAST( id as varchar).,但没有任何效果。我仍然收到此错误消息。
错误:您的 SQL 语法有错误;检查手册 对应于您的 MySQL 服务器版本,以便使用正确的语法 靠近'varchar ),',eindeutige Kombination aus abfid und parentid);'
)
任何帮助将不胜感激!
工作正常:
concat(
'INSERT INTO dev_sys_index (name,tableid,descrition) VALUES (idx_',
name,
',',
cast(id as char),
',eindeutige Kombination aus abfid und parentid);')
只得到一堵十六进制数的墙:
concat(
'INSERT INTO dev_sys_index (name,tableid,descrition) VALUES (idx_',
name,
',',
id,
',eindeutige Kombination aus abfid und parentid);')
更新
问题解决了。我必须使用cast(whatever as char) 而不是cast(whatever as varchar)
【问题讨论】:
-
你到底想做什么?
-
我正在尝试使用 concat 创建一个插入语句,而 concat 只接受字符串变量,因此主要问题是将 id 从 int 转换为 string 以在此 concat 语句中使用它。
-
mysql中的CONCAT可以接受整数作为参数。
CONCAT(1, 2)会给12 -
我知道....这是我的问题
-
我试试这个
SELECT concat('INSERT INTO dev_sys_index (name,tableid,descrition) VALUES (idx_',"asd",',',1,',eindeutige Kombination aus abfid und parentid);'),它的工作原理.....