首页 / MYSQL / mysql – 执行查询结果语句
mysql – 执行查询结果语句
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了mysql – 执行查询结果语句,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含2696字,纯文字阅读大概需要4分钟。
内容图文
![mysql – 执行查询结果语句](/upload/InfoBanner/zyjiaocheng/908/26e451e2a18e4fed8cd79d62ecb66c16.jpg)
我有一组名为results_%的表,都具有相同的结构.
我想为这个表添加一个索引.
我可以将每个表的alter语句作为一行select查询结果获取,但我不知道如何执行这些语句:
select concat( 'alter table ', test_db.table_name, ' add index `did` (`did`);' ) as statement
from information_schema.tables test_db
where test_db.table_name like 'results_%';
我错过了什么?
输出(我想执行而不是只显示给我):
+---------------------------------------------------------+
| statement |
+---------------------------------------------------------+
| alter table results_Em7777_spa add index `did` (`did`); |
| alter table results_KaEng_eng add index `did` (`did`); |
| alter table results_Ka_spa add index `did` (`did`); |
| alter table results_Mc_spa add index `did` (`did`); |
| alter table results_Mo_eng add index `did` (`did`); |
| alter table results_Pe_eng add index `did` (`did`); |
| alter table results_SU_spa add index `did` (`did`); |
| alter table results_Ta_spa add index `did` (`did`); |
| alter table results_ba_eng add index `did` (`did`); |
| alter table results_br_eng add index `did` (`did`); |
| alter table results_ca_spa add index `did` (`did`); |
| alter table results_ch_spa add index `did` (`did`); |
| alter table results_da_spa add index `did` (`did`); |
| alter table results_ga_eng add index `did` (`did`); |
| alter table results_ge_spa add index `did` (`did`); |
| alter table results_gk_eng add index `did` (`did`); |
+---------------------------------------------------------+
16 rows in set (0.00 sec)
[编辑]
我试过了:
drop procedure if exists altlike;
delimiter //
create procedure altlike()
begin
set group_concat_max_len = 65535;
select @altrlk:= concat( 'alter table ', test_db.table_name , ' add index `did` (`did`);' )
from information_schema.tables test_db
where test_db.table_name like "results_%";
prepare statement from @altrlk;
execute statement;
end //
delimiter ;
call altlike();
但仍然没有运气:它只会改变最后匹配的表格(results_gk_eng).
解决方法:
你基本上是从数据库中打出字符串行,它不会自动执行它只是因为它看起来像一个sql语句;
您可以做的是使用编程语言逐行执行,然后返回结果.
或者将其抛入一个存储过程,在该过程中它会提供一个辅助执行块.
示例:FROM http://net.tutsplus.com/tutorials/an-introduction-to-stored-procedures/详细了解它.
DELIMITER //
CREATE PROCEDURE `proc_CURSOR` (OUT param1 INT)
BEGIN
DECLARE a, b, c INT;
DECLARE cur1 CURSOR FOR SELECT col1 FROM table1;
DECLARE CONTINUE HANDLER FOR NOT FOUND SET b = 1;
OPEN cur1;
SET b = 0;
SET c = 0;
WHILE b = 0 DO
FETCH cur1 INTO a;
IF b = 0 THEN
SET c = c + a;
END IF;
END WHILE;
CLOSE cur1;
SET param1 = c;
END //
内容总结
以上是互联网集市为您收集整理的mysql – 执行查询结果语句全部内容,希望文章能够帮你解决mysql – 执行查询结果语句所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。