31

以下查询适用于 MySQL:

SELECT concat(title,'/') FROM `socials` WHERE 1

它将/连接到选定的标题字段。

但是,当我尝试执行以下操作时:

SELECT concat(*,'/') FROM `socials` WHERE 1

它返回以下错误:

 #1064 - You have an error in your SQL syntax;
check the manual that corresponds to your MySQL server version for the right syntax to use near '*,'/') FROM `socials` WHERE 1 LIMIT 0, 30' at line 1

那么有什么方法可以使这样的 sql 查询与 MySql 一起使用

4

4 回答 4

46

您根本无法在 SQL 中做到这一点。您必须明确列出字段并连接每个字段:

SELECT CONCAT(field1, '/'), CONCAT(field2, '/'), ... FROM `socials` WHERE 1

如果您使用的是应用程序,则可以使用 SQL 读取列名,然后使用您的应用程序构造一个类似上面的查询。请参阅此 stackoverflow 问题以查找列名:Get table column names in mysql?

于 2012-11-25T12:37:56.557 回答
24

如果要使用 / 作为分隔符连接字段,可以使用concat_ws

select concat_ws('/', col1, col2, col3) from mytable

但是,您无法逃避列出查询中的列。*-syntax 仅适用于“select * from”。您可以列出列并动态构建查询。

于 2012-11-25T12:49:34.400 回答
2

您不能使用字符串连接多个字段。您需要选择所有字段 ( *)。

于 2012-11-25T12:36:24.810 回答
1

您不能在多个字段上执行此操作。你也可以找这个

于 2012-11-25T12:38:11.363 回答