gpt4 book ai didi

mysql - MySql 中的动态列名选择

转载 作者:可可西里 更新时间:2023-11-01 06:57:47 25 4
gpt4 key购买 nike

我今天被困在 Mysql 中,因为 mysql select 语句中需要动态列名。让我解释一下:

sql> select name1 from namescollection. 
sql> select name2 from namescollection.
sql> select name3 from namescollection.

所以 namescollection 表有 name1, name2, name3 三列我想在我的存储过程中查询这个表是 1,2,3 作为动态的并且将作为变量传递,但是当我查询时也在简单的 sql 上:

SELECT concat('name','1') FROM `namescollection` 

name1 ----- name1 而不是获取 name1 字段的值。

对此有什么建议吗,我需要使用正确的函数而不是 concat,虽然我知道当我调用 concat 时输出 name1 是正确的,但我想将它用作列名。

最佳答案

您可以做的是在您的存储过程中使用准备好的语句,这将允许您执行字符串查询:

举个简单的例子:

DELIMITER //
CREATE PROCEDURE selname (IN col VARCHAR(20))
BEGIN
SET @sql = CONCAT('SELECT ', col, ' FROM tbl');
PREPARE stmt FROM @sql;
EXECUTE stmt;
DEALLOCATE PREPARE stmt;
END//
DELIMITER ;

用这个 SQLFiddle Demo 测试一下

关于mysql - MySql 中的动态列名选择,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11699027/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com