从 wp_usermeta 检索结合两个元键和值的用户的 SQL 查询

Iña*_*aki 1 mysql sql database wordpress

我有一个 Wordpress 站点,用户可以在其中注册为不同语言的教师或学生。

我现在正在尝试通过 phpMyAdmin搜索所有注册为法语教师的用户,但我不知道应该使用哪个查询。

注册为教师的用户具有 meta_keya:1:{s:16:"cliente_profesor";b:1;}的 meta_value wp_capabilities

如果他/她教法语,她/他有 meta_key2的 meta_value idioma_registro

所以这就是我尝试在我的查询中组合该信息的方式:

SELECT `user_id` FROM `wp_usermeta` WHERE (`meta_key` LIKE 'idioma_registro' AND `meta_value` LIKE '2') AND (`meta_key` LIKE 'wp_capabilities' AND `meta_value` LIKE 'a:1:{s:16:"cliente_profesor";b:1;}');
Run Code Online (Sandbox Code Playgroud)

运行查询时的结果是“0”,但我知道在该网站上注册了 20000 多名法语教师。所以我在这个查询上做错了。

在此先感谢您为我提供的任何帮助!

Iña*_*aki 5

感谢 Brent,我在 Stackexchange 中找到了解决方案。

这是我正在寻找的代码:

SELECT u.ID, u.display_name
FROM wp_users AS u
LEFT JOIN wp_usermeta AS um1 ON u.ID = um1.user_id
LEFT JOIN wp_usermeta AS um2 ON u.ID = um2.user_id
WHERE  um1.meta_key = 'idioma_registro' AND um1.meta_value = '2'
AND um2.meta_key = 'wp_capabilities' AND um2.meta_value = 'a:1:{s:16:"cliente_profesor";b:1;}'
Run Code Online (Sandbox Code Playgroud)

我希望这可以帮助更多的人!