如何将三个MySQL查询合并为一个?

时间:2012-09-18 03:19:08

标签: mysql sql

使用wordpress数据库,我们有像wp_options和wp_postmeta这样的表。 这些按主键ID分组,然后是'option_name'和'option_value';

等字段

例如,找出三个值,我需要做3个不同的查询。

是否有正确的方法只使用一个查询来完成所有这些操作?

请对此有所了解并分享正确的方法。

SELECT option_value FROM bdlocal_wrdp1.wp_options WHERE option_name='siteurl';

SELECT option_value FROM bdlocal_wrdp1.wp_options WHERE option_name='blogname';

SELECT option_value FROM bdlocal_wrdp1.wp_options WHERE option_name='blogdescription';

(返回example.com,示例博客,这是一个示例博客。)

4 个答案:

答案 0 :(得分:7)

SELECT option_name,
       option_value
  FROM bdlocal_wrdp1.wp_options
 WHERE option_name IN ('siteurl', 'blogname', 'blogdescription')

执行此查询后,您将拥有3对option_name + option_value值。

答案 1 :(得分:3)

你可以为此IN条款,

SELECT option_value 
FROM bdlocal_wrdp1.wp_options 
WHERE option_name IN ('siteurl','blogname','blogdescription')

答案 2 :(得分:1)

select (case when option_name='siteurl' then option_value else 0 end ) as 'siteurl',
   (case when option_name='blogname' then option_value else 0 end ) as 'blogname',
   (case when option_name='blogdescription' then option_value else 0 end ) as 'blogdescription' from bdlocal_wrdp1.wp_options

答案 3 :(得分:0)

  

您还可以使用 MySQL Union 来实现此功能:

select option_name,option_value from wp_options where option_name='siteurl' UNION ALL
select option_name,option_value from wp_options where option_name='blogname' UNION ALL
select option_name,option_value from wp_options where option_name='blogdescription';

您可以通过一些示例here.

了解有关联盟的更多信息