当前位置: 首页 > 面试题库 >

如何从动态表名称中选择

秦安怡
2023-03-14
问题内容

我有这样的桌子

changes201101
changes201102
changes201103
...
changes201201

whichchanges包含年和月行的表

如何从的更改中选择 whichchanges

我输入这个查询

SET @b := SELECT CONCAT('changes',year,month) FROM whichchanges;
((((@b should contain now multiple rows of changesYearMonth)))))
SET @x := SELECT * FROM @b;
Prepare stmt FROM @b;
Prepare stmt FROM @x;
Execute stmt;

#1064-您的SQL语法有误;检查与您的MySQL服务器版本对应的手册以获取正确的语法,以在第1行的’SELECT
CONCAT(’changes’,year,month)FROM changes)’附近使用


问题答案:

您打开1 (并关闭2 )。删除最后一个:

SELECT CONCAT('changes',year,month) FROM changes

编辑

第二个语句应该是

SET @x := SELECT * FROM (@b) as b;

那行得通,但是不确定那是否是您想要的:

SET @b := 'SELECT CONCAT(''changes'',`year`,`month`) FROM whichchanges';
SET @x := 'SELECT * FROM (SELECT CONCAT(''changes'',`year`,`month`) FROM whichchanges) as b';
Prepare stmt FROM @b;
Prepare stmt FROM @x;
Execute stmt;

编辑2

如果我理解正确,那么您正在寻找一个查询:

select * from changes
where change_column in (select distinct concat(`year`, `month`) from whichchanges)

编辑3

select @b := group_concat(concat(' select * from changes', `year`, `month`, ' union ') separator ' ') as w from whichchanges;
set @b := left(@b, length(@b) - 6);

Prepare stmt FROM @b;
Execute stmt;

SQLFiddle示例



 类似资料:
  • 问题内容: 我有一种情况,从中获取表名应该是从一个设置变量: 但是这样做会导致MySQL输出错误,所以有人可以向我展示如何实现这一点,因为这是我在MySQL中的基本步骤。 问题答案: 您必须使用准备好的语句来执行此操作。就像是:

  • 问题内容: 我想选择列名,但我不知道表结构是否会提前更改,因此它可能会发生变化,因此我不能只对带有列名的select语句进行硬编码。我也不想选择每一列。有没有简单的方法可以做到这一点? 我的想法是这两个查询的某种组合,但是我的SQL并不是那么好。 我尝试使用子选择,但没有用。似乎什么都没发生,我没有收到错误,只是没有结果 也许我需要参加吗?..无论如何,任何帮助都将是很大的,谢谢 问题答案: 试试

  • 问题内容: 我正在尝试执行这样的mysql查询 它显示这样的错误 我该如何实现? 问题答案: 在查询中动态表名的使用最好与 Prepared Staments一起使用 ,在mysql中也可以使用串联功能 您也可以针对删除查询执行此操作

  • 问题内容: 大家好,我有一个要使用的可怕数据库,而linqtosql是我从中检索数据的选项。任何试图通过基于用户选择抛出不同的表名来重用函数的人,据我所知,没有办法修改DataContext查询中的TEntity或。 这是我当前的代码。 我想用Enumerable记录填充ViewData。 问题答案: 您可以在DataContext实例上调用ExecuteQuery方法。您将要调用采用Type实例

  • 我是根据编辑文本中给出的计数动态创建单选按钮的。我想在应用程序中动态创建radiobutton后编辑它的名称,就像用户有特权在应用程序中命名单选按钮一样。我该怎么做android studio这是我创建dyanmic radiobuttons到目前为止的代码。在代码rbn.settext(“radiobutton”+I)中,将radiobutton命名为Radiobutton1、Radiobutt

  • 问题内容: 如何在ng-repeat中使用动态名称命名表单? 我想动态命名每种形式。例如,将$ index添加到表单名称。我该如何实现?我在ng-repeat上尝试了ng-init,但是没有用。 问题答案: 您可以这样做: 编辑 : 您也可以使用,如下所示: 如果仅基于表单的有效性应用类,则可以将样式应用于自动添加的类,例如: