3

使用 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、Example Blog、This is an example blog。)

4

4 回答 4

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

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

于 2012-09-18T03:20:32.510 回答
3

你可以IN为此条款,

SELECT option_value 
FROM bdlocal_wrdp1.wp_options 
WHERE option_name IN ('siteurl','blogname','blogdescription')
于 2012-09-18T03:20:39.387 回答
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
于 2012-09-18T04:14:43.623 回答
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';

你可以在这里阅读更多关于 Unions 的例子

于 2015-11-17T22:26:18.693 回答