1

我需要在 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 对我只是不知道如何添加它们....

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

4

2 回答 2

1

如果您只是想根据不同的键获得价值,您可以这样做:

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';

如果这有效,您可以在确保代码有效后添加别名。

于 2020-04-09T22:54:35.867 回答
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 '%%'
于 2020-04-09T21:45:48.500 回答