我正在创建一个用于在 Wordpress 中搜索用户的自动建议。
问题是名字和姓氏存储为 meta_key。
所以“正常”搜索是不可能的。
我可能需要做两个查询。可以做一个JOIN吗?
这是我不成功的第一次尝试:
SELECT user_id, first_name, last_name
FROM wp_usermeta
WHERE (meta_key='first_name' OR meta_key='last_name' OR meta_key = 'user_email')
AND LOWER(meta_value) LIKE '%jon%'
Run Code Online (Sandbox Code Playgroud)
我找到了答案。我不确定这是否是最好的,但它有效:
SELECT a.id, b1.meta_value AS first_name, b2.meta_value as last_name
FROM wp_users a
INNER JOIN wp_usermeta b1 ON b1.user_id = a.ID AND b1.meta_key = 'first_name'
INNER JOIN wp_usermeta b2 ON b2.user_id = a.ID AND b2.meta_key = 'last_name'
WHERE (b1.meta_value LIKE '%st%' OR b2.meta_value LIKE '%st%' OR a.user_email LIKE '%st%')
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
4725 次 |
| 最近记录: |