WordPress SQL Запрос к таблице wp_usermeta с таблицей wp_users для получения нескольких пар meta_key meta_value - PullRequest
0 голосов
/ 10 апреля 2020

Мне нужно запустить запрос в phpmyadmin, который соединяет wp_users с wp_usermeta от user_id до 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

Это работает (или работает), но я не уверен, что это правильно для выполнения sh этого. Мне нужно 8 разных пар meta_key / meta_value, я просто не знаю, как их добавить ....

Если вам нужна дополнительная информация, я с удовольствием ее предоставлю ...

Ответы [ 2 ]

0 голосов
/ 10 апреля 2020

Если вы просто хотите получить значение на основе различных ключей, вы можете сделать это следующим образом:

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

Если это работает, вы можете добавить псевдонимы, убедившись, что код работает.

0 голосов
/ 10 апреля 2020

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 '%%'
...