我目前有一个查询,检查是否在数组值中找到某个单词。
$imploded = implode("','",$company_array);
$query = "SELECT *
FROM $wpdb->usermeta
WHERE meta_key='company'
AND meta_value IN ('".$imploded."')";
$company_array
包含不同的值。
我想添加另一个WHERE子句但不知道如何。
它应该检查用户角色:
SELECT*
FROM $wpdb->usermeta
WHERE meta_key = 'wp_capabilities'
AND meta_value = 'subscriber'
也许是某种联接查询?我不知道。
====样本数据和预期输出====
这是我当前的查询
$query = "SELECT *
FROM $wpdb->usermeta
WHERE meta_key='company'
AND meta_value IN ('".$imploded."')";
我想添加以下查询
SELECT*
FROM $wpdb->usermeta
WHERE meta_key = 'wp_capabilities'
AND meta_value = 'subscriber'
第一个查询加载适用于某个公司的用户列表。 问题是................
垃圾。我写这篇文章的时候才意识到这一点
问题是管理员也列在用户列表中。我希望他不在结果中
根据用户在company
字段中的值列出用户。但如果这是空的,则管理员不会在任何地方列出。
答案 0 :(得分:1)
你的WHERE子句必须是
WHERE (meta_key='company' AND meta_value IN ('".$imploded."'))
OR (meta_key = 'wp_capabilities' AND meta_value = 'subscriber')
答案 1 :(得分:0)
试试这个
$query = "SELECT *
FROM $wpdb->usermeta
WHERE (meta_key='company'
AND meta_value IN ('".$imploded."')) or (meta_key = 'wp_capabilities' and meta_value = 'subscriber')";
答案 2 :(得分:0)
我认为您需要以下内容。请注意()
和OR
两个where子句。
$query = "SELECT *
FROM $wpdb->usermeta
WHERE ( meta_key='company' AND meta_value IN ('".$imploded."')")
OR (meta_key = 'wp_capabilities' AND meta_value = 'subscriber');