有两个表:wp_users和wp_usermeta。
wp_users表的结构如下:
id | email
---------------
1 | b@foo.com
2 | k@bah.com
wp_usermeta表的结构如下:
id | user_id | meta_key | meta_value
---------------------------------------------------
1 | 1 | firstname | bob
2 | 1 | lastname | smith
3 | 1 | app_prefferedcategories | {"blog_id":"5"},{"blog_id":"22"}
4 | 2 | firstname | jan
5 | 2 | lastname | jones
6 | 2 | app_prefferedcategories | {"blog_id":"1"},{"blog_id":"7"}
我要完成的是在meta_key app_prefferedcategories中获取meta_value为{“blog_id”:“5”}的用户的所有电子邮件地址。 我知道如何一次查询一个表,但我很难加入它们。 任何人都可以对此发光吗?
提前致谢!
答案 0 :(得分:1)
select u.email
from wp_usermeta m
inner join wp_users u on u.id = m.user_id
where meta_key = 'app_prefferedcategories'
and find_in_set('{"blog_id":"5"}', meta_value) > 0
答案 1 :(得分:1)
SELECT u.email
FROM wp_users u
INNER JOIN wp_usermeta um ON u.id = um.user_id
WHERE um.meta_key = 'app_prefferedcategories' AND um.meta_value LIKE '%{"blog_id":"5"}%'