【问题标题】:How to run query in Wordpress against multiple tables如何在 Wordpress 中针对多个表运行查询
【发布时间】:2011-11-21 01:51:32
【问题描述】:

此查询可以满足我的需要,从 Wordpress 多站点数据库的多个表中的小部件返回数据列表。

必须有更简单的方法来做到这一点。我需要包含 30 个表,我怎样才能获得某种类型的循环来仅从所有 wp_n_option 表中返回选项值?

SELECT option_value
FROM `wp_options`
WHERE option_name = 'widget_thin_search'
UNION
SELECT option_value
FROM `wp_3_options`
WHERE option_name = 'widget_thin_search'
UNION
SELECT option_value
FROM `wp_4_options`
WHERE option_name = 'widget_thins_search'
INTO OUTFILE '/tmp/result.csv'

编辑:正如 Brandon 指出的那样,如果它是一个静态的 30 个表,我可以构建查询。但是,随着时间的推移,表格会增加。

【问题讨论】:

    标签: sql wordpress wpmu


    【解决方案1】:

    您可以创建一个表,其中一列包含表名。然后创建一个 T-SQL 过程来遍历这些表名并构造一个类似于您在示例中的查询字符串。然后使用 exec 命令运行该查询字符串。

    请注意,UNION 会删除重复项,而 UNION ALL 不会。这对你来说可能不是问题,但我只是想指出这一点。

    【讨论】:

    • 但这是否适用于 30 个不会更改的表(即您不会添加更多表或删除任何表)?如果是这样,我会说只需花 10 分钟的时间按照您的方式完成查询并完成它。您将花费同样多或更多的时间来创建 proc。
    • 30张桌子会随着时间的推移而增加。一个自动化的解决方案将是最好的。我正在考虑在 FROM 子句中进行某种嵌套查询,以选择所有 wp_n_options 表,但我无法弄清楚。
    • 您必须使用纯 TSQL 还是可以使用像 C# 这样的编程语言? TSQL 就像一种古老的语言,试图在过去 2 年中保持向后兼容。如果您需要使用 TSQL,请将“select * from INFORMATION_SCHEMA.TABLES where TABLE_NAME like 'wp_%'”之类的内容放入游标中,然后遍历结果以进行查询。
    • 我愿意使用任何东西,只要它有效!我只是询问有关 SQL 的问题,因为这是我所知道的。
    • 明白了。那么 TSQL 可能会比学习一门新语言更快:)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-12-09
    • 2013-04-28
    • 1970-01-01
    • 1970-01-01
    • 2020-05-07
    • 2017-04-20
    • 2019-07-30
    相关资源
    最近更新 更多