加入收藏 | 设为首页 | 会员中心 | 我要投稿 湖南网 (https://www.hunanwang.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程 > 正文

MySql中的动态列名称选择

发布时间:2021-04-02 14:28:32 所属栏目:编程 来源:网络整理
导读:我本日卡在Mysql中,在mysql select语句中必要动态列名.让我表明: sql select name1 from namescollection. sql select name2 from namescollection. sql select name3 from namescollection. 因此,namescollection表有三列,其名称为name1,name2,name3 我想

我本日卡在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举办测试

(编辑:湖南网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    热点阅读