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

MySQL遍历表

燕青青
2023-03-14
问题内容

我想从包含一first_name列的每个表中输出数据。我将以下过程放在一起,但是在我的循环中,mysql从字面上解释表名,而不是评估变量table_name。解决办法是什么?

delimiter //

drop procedure if exists hunt //
create procedure hunt()
begin
    DECLARE done int default false;
    DECLARE table_name CHAR(255);

    DECLARE cur1 cursor for SELECT TABLE_NAME FROM INFORMATION_SCHEMA.COLUMNS 
        WHERE TABLE_SCHEMA = "wholesale_production" and COLUMN_NAME LIKE "%first%" ;
    DECLARE CONTINUE HANDLER FOR NOT FOUND SET done = TRUE;
    open cur1;

    myloop: loop
        fetch cur1 into table_name;
        if done then
            leave myloop;
        end if;
        select * from `wholesale_production`.table_name where created_at >= '2012-10-01';
    end loop;

    close cur1;
end //

delimiter ;

call hunt();

问题答案:

尝试这个:

delimiter //

drop procedure if exists hunt //
create procedure hunt()
begin
    DECLARE done int default false;
    DECLARE table_name CHAR(255);

    DECLARE cur1 cursor for SELECT TABLE_NAME FROM INFORMATION_SCHEMA.COLUMNS 
        WHERE TABLE_SCHEMA = "wholesale_production" and COLUMN_NAME LIKE "%first%" ;
    DECLARE CONTINUE HANDLER FOR NOT FOUND SET done = TRUE;
    open cur1;

    myloop: loop
        fetch cur1 into table_name;
        if done then
            leave myloop;
        end if;
        set @sql = CONCAT('select * from `wholesale_production`.', table_name, ' where created_at >= '2012-10-01');
        prepare stmt from @sql;
        execute stmt;
        drop prepare stmt;
    end loop;

    close cur1;
end //

delimiter ;

call hunt();


 类似资料:
  • 问题内容: 我想从MySQL表中获取所有列名,遍历每个列名,然后使用这些列名作为变量运行存储过程。效果: 看起来会给我列名,但是如何将列名放入循环? 我真的很想使用本机SQL在存储过程中运行所有这些程序。由于我仍在学习MySQL的复杂性,因此对我的项目确实有帮助。谢谢你的帮助。 问题答案: 我想你想要这样的东西:

  • 问题内容: 有什么不同的方法可以循环遍历mysql结果集?我是PHP和MySQL的新手,所以我正在寻找简单的循环方法以及有关所提供代码如何工作的解释。 问题答案: 这是一个完整的示例: http://php.net/manual/en/mysqli-result.fetch- array.php 连接 选择数据库 进行查询 循环处理结果并获取数组以获取行

  • 问题内容: 这是我正在使用的代码: 在我的视图中,这是我要查看的值: 想象一下,我查询类似的东西,并且返回一个结果集,例如: 如何遍历每个值并输出呢? 这里的文档没有用,因为我尝试了应该存在的方法,但是解释器给我一个错误,指出这些方法不存在。我使用了错误的文档吗? http://www.tmtm.org/en/mysql/ruby/ 谢谢! 问题答案: 如果您使用的是mysql2 gem,那么您应

  • 我试图在Java中使用Selenium遍历一个表(目前使用的是chromedriver)。该表的内容由不同的人组成,他们的个人资料有链接,对于该表中的每个人,我将进入他们的个人资料并提取一些信息。我将为X数量的人做这件事。该表每页包含5人,我通过单击分页按钮浏览页面” 现在来看这个问题:举个例子,我现在在exampleUrl。com/page\u包含表I,然后输入用户的配置文件并提取他们的信息,他

  • 问题内容: 我有一个表A,并且有一个主键ID。 现在我要遍历A中的所有行。 我发现类似“针对A中的每个记录”的内容,但这似乎并不是您在MySQL中的处理方式。 我想为每一行获取一个字段并对其进行转换,将其插入到另一个表中,然后更新该行的某些字段。我可以将select部分和insert放入一个语句中,但是我也不知道如何在其中进行更新。所以我想循环。实际上,我不想使用MySQL以外的任何东西。 编辑

  • 问题内容: 所以我有2张桌子,和。 具有列,具有呼叫者的ID和进行呼叫的时间。然后,我有另一台已,,,,,有一个人,他们的位置的ID ,而且它们在该位置的时间。 我想写一个看起来像这样的查询: 基本上,这是在寻找给定值的最接近值。之后,最终,我想根据数据查找呼叫的位置。 我该怎么做?我知道有一种基于集合的方法,但是我不想那样做。我调查了一下,但是我感到在那方面的表现很糟糕……所以循环中是否有这样做