如何有效连接 MySQL 列
使用 * 关键字连接 MySQL 中的所有列是不可行的。相反,您需要显式列出要组合的所有列。
显式列串联
要实现此目的,请使用 CONCAT 函数:
SELECT CONCAT(col1, col2, col3, ....) FROM yourtable
或者,您可以利用 CONCAT_WS 省略空值:
SELECT CONCAT_WS(',', col1, col2, col3, ....) FROM yourtable
动态列串联
如果手动指定列不方便,请考虑使用动态查询获取所有列名称:
SELECT `column_name` FROM `information_schema`.`columns` WHERE `table_schema`=DATABASE() AND `table_name`='yourtable'
将此结果与 GROUP_CONCAT 组合以生成用逗号分隔的引用列名称列表:
GROUP_CONCAT(CONCAT('`', column_name, '`'))
完整动态查询
使用这些元素,您可以构建动态查询:
SELECT CONCAT( 'SELECT CONCAT_WS(\'\',', GROUP_CONCAT(CONCAT('`', column_name, '`') ORDER BY column_name), ') AS all_columns FROM yourtable;') FROM `information_schema`.`columns` WHERE `table_schema`=DATABASE() AND `table_name`='yourtable' INTO @sql;
此查询生成类似于以下内容的字符串:
SELECT CONCAT_WS('', col1, col2, col3, ....) AS all_columns FROM yourtable
使用以下命令执行此字符串:
PREPARE stmt FROM @sql; EXECUTE stmt;
这种方法无需手动列出列,从而确保动态且可扩展的串联。
以上是如何连接 MySQL 列而不列出所有列?的详细内容。更多信息请关注PHP中文网其他相关文章!