亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

一次查詢多個數據庫

一次查詢多個數據庫

牛魔王的故事 2019-10-21 11:10:04
我在各自的數據庫中都有WordPress實例。要進行更新,我需要查詢所有活動插件,這些插件存儲在表“ wp_options”中,可通過以下方式訪問WHERE option_name='active_plugins'如何訪問所有活動的插件設置(分布在多個數據庫中)并將其輸出到一個SQL結果中?我知道database.tablename語法,但是如何使用上面的Where語句從那里繼續?單個數據庫中的請求如下所示:SELECT option_value  FROM `database`.`wp_options` WHERE option_name="active_plugins"
查看完整描述

3 回答

?
慕萊塢森

TA貢獻1810條經驗 獲得超4個贊

SELECT option_value

 FROM `database1`.`wp_options`

  WHERE option_name="active_plugins"

UNION

SELECT option_value

 FROM `database2`.`wp_options`

  WHERE option_name="active_plugins"


查看完整回答
反對 回復 2019-10-21
?
MMTTMM

TA貢獻1869條經驗 獲得超4個贊

Pentium10的解決方案很好,但是它的缺點是您必須為要包含的每個架構擴展查詢。以下解決方案使用一條準備好的語句為MySQL服務器上具有該表的所有模式生成結果集wp_options。這對您來說應該更方便。


DROP PROCEDURE IF EXISTS `MultipleSchemaQuery`;


DELIMITER $$


CREATE PROCEDURE `MultipleSchemaQuery`()

BEGIN

    declare scName varchar(250);

    declare q varchar(2000);


    DROP TABLE IF EXISTS ResultSet;

    create temporary table ResultSet (

     option_value varchar(200)

    );


    DROP TABLE IF EXISTS MySchemaNames;

    create temporary table MySchemaNames (

        schemaName varchar(250)

    );


    insert into MySchemaNames

    SELECT distinct

        TABLE_SCHEMA as SchemaName

    FROM 

        `information_schema`.`TABLES`  

    where 

        TABLE_NAME = 'wp_options';


label1:

    LOOP

        set scName = (select schemaName from MySchemaNames limit 1);

        set @q = concat('select option_value from ', scName, '.wp_options where option_name=\'active_plugins\'');

        PREPARE stmt1 FROM @q;

        EXECUTE stmt1;

        DEALLOCATE PREPARE stmt1;


        delete from MySchemaNames where schemaName = scName;

        IF ((select count(*) from MySchemaNames) > 0) THEN

            ITERATE label1;

        END IF;

        LEAVE label1;


    END LOOP label1;


    SELECT * FROM ResultSet;


    DROP TABLE IF EXISTS MySchemaNames;

    DROP TABLE IF EXISTS ResultSet;

END

$$


DELIMITER ;


CALL MultipleSchemaQuery();


查看完整回答
反對 回復 2019-10-21
  • 3 回答
  • 0 關注
  • 565 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號