使用wp_users表对wp_usermeta表进行WordPress SQL查询以获得多个meta_key meta_value对

时间:2020-04-09 21:33:28

标签: sql wordpress wordpress-rest-api

我需要在phpmyadmin中运行一个查询,该查询将wp_users与user_id上的wp_usermeta连接到ID。到目前为止,我有以下内容。

SELECT
 wp_users.ID AS 'User ID',
 wp_users.display_name AS 'Name',
 meta_value AS 'Representative'
FROM wp_usermeta JOIN wp_users ON wp_usermeta.user_id=wp_users.ID
WHERE `meta_key` = 'representative' AND `meta_value` LIKE '%%'
ORDER BY wp_users.ID

这可行(或可行),但我不确定实现此目的是否正确。我需要8个不同的meta_key / meta_value对,我只是不知道如何添加它们....

如果您需要更多信息,我很乐意提供...

2 个答案:

答案 0 :(得分:0)

Wordpress是基于mySQL和php构建的,因此我没有理由不这样做。经常有很多文摘时会更快。

global $wpdb;    
$result = $wpdb->get_results( "SELECT ...");
print_r($result);

我想也应该可以使用它: https://developer.wordpress.org/reference/functions/get_user_meta/

查看:

CREATE VIEW aviw_UserMetadata
AS
SELECT
 wp_users.ID AS 'User ID',
 wp_users.display_name AS 'Name',
 meta_value AS 'Representative'
FROM wp_usermeta 
INNER JOIN wp_users ON wp_usermeta.user_id=wp_users.ID
WHERE `meta_key` = 'representative' AND `meta_value` LIKE '%%'

答案 1 :(得分:0)

如果您只是想基于不同的键来获取价值,可以这样做:

SELECT * FROM (
 SELECT u.ID, u.display_name, um.meta_value, um.meta_key
 FROM wp_usermeta AS um
 JOIN wp_users AS u
 ON um.user_id = u.ID
 WHERE `meta_value` LIKE '%%'
) AS meta
WHERE `meta_key` = 'key1' OR `meta_key` = 'key2' OR `meta_key` = 'key3';

如果此方法有效,则可以在确保代码有效后添加别名。