将字符串连接到 SELECT * MySql

Posted

技术标签:

【中文标题】将字符串连接到 SELECT * MySql【英文标题】:Concat a string to SELECT * MySql 【发布时间】:2012-11-13 02:45:17 【问题描述】:

以下查询适用于 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 一起工作

【问题讨论】:

不,这不能在普通选择中完成。可以使用存储过程吗? 不使用存储过程对我来说不是一个选项。 【参考方案1】:

你不能用一个字符串连接多个字段。您需要选择一个字段来代替所有 (*)。

【讨论】:

【参考方案2】:

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

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

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

【讨论】:

【参考方案3】:

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

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

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

【讨论】:

谢谢大家,但获得正确答案的最明显的方面是展示如何实现选择多个字段。 @sємsєм,您可以手动列出它们(或者,如果您使用的是应用程序,您可以使用 SQL 来读取列,然后使用您的应用程序构造一个类似上面的查询)。 【参考方案4】:

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

【讨论】:

以上是关于将字符串连接到 SELECT * MySql的主要内容,如果未能解决你的问题,请参考以下文章

C#中如何设置字符串连接到MySQL数据库?

将字符串连接到列表[重复]

将字符串连接到 pig 中的字段

播放 wav 文件,将字符串连接到调用文件

Spark - 将每个分区的字符串连接到单个字符串

如何将字符串连接到刀片中的 $ 变量?