我有一个Wordpress网站,用户可以注册为不同语言的教师或学生。
我现在正试图通过phpMyAdmin搜索所有注册为法语老师的用户,但我无法确定应该使用哪个查询。
注册为教师的用户对meta_key a:1:{s:16:"cliente_profesor";b:1;}
的meta_value为wp_capabilities
。
如果他/她教法语,她/他对meta_key 2
的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;}');
运行查询时的结果为“0”,但我知道网站上有超过20000名法国教师注册。所以我对这个查询做错了。
提前感谢您提供给我的任何帮助!
答案 0 :(得分:2)
我在Stackexchange thanks to Brent找到了一个解决方案。
以下是我要找的代码:
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;}'
我希望这可以帮助更多人!
答案 1 :(得分:0)
尝试此查询
SELECT `user_id` FROM `wp_usermeta` WHERE (`meta_key` LIKE 'idioma_registro' AND `meta_value` LIKE '2')
OR (`meta_key` LIKE 'wp_capabilities' AND `meta_value` LIKE 'a:1:{s:16:"cliente_profesor";b:1;}')
注意:您无法使用AND
查询,因为idioma_registro
和wp_capabilities
不在同一行。有不同的行。