Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/60.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/83.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Mysql SQL查询未获得具有多个AND的结果_Mysql_Sql - Fatal编程技术网

Mysql SQL查询未获得具有多个AND的结果

Mysql SQL查询未获得具有多个AND的结果,mysql,sql,Mysql,Sql,我使用SQL查询从MySQL数据库中获取数据: SELECT wp_users.ID, wp_users.time, wp_users.display_name FROM wp_users INNER JOIN wp_usermeta ON wp_users.ID = wp_usermeta.user_id WHERE wp_usermeta.meta_key = 'wp_capabilities' AND wp_usermeta.meta_value LIKE '%user%' AN

我使用SQL查询从MySQL数据库中获取数据:

SELECT wp_users.ID, wp_users.time, wp_users.display_name 
FROM wp_users 
INNER JOIN wp_usermeta ON wp_users.ID = wp_usermeta.user_id 
WHERE wp_usermeta.meta_key = 'wp_capabilities' 
AND wp_usermeta.meta_value LIKE '%user%' 
AND wp_users.time >= UNIX_TIMESTAMP(DATE_SUB(NOW(), INTERVAL 1 MINUTE)) 
ORDER BY wp_users.display_name";
它将获得所有用户的列表,但不包含第二个AND语句:

AND wp_users.time >= UNIX_TIMESTAMP(DATE_SUB(NOW(), INTERVAL 1 MINUTE)) 
我能做些什么让两个AND起作用吗


事先非常感谢

我看不出查询有错误。我认为这个错误是你的数据集造成的。从对您问题的评论中,我了解到原始查询:

SELECT wp_users.ID, wp_users.time, wp_users.display_name 
FROM wp_users 
INNER JOIN wp_usermeta ON wp_users.ID = wp_usermeta.user_id 
WHERE wp_usermeta.meta_key = 'wp_capabilities' 
AND wp_usermeta.meta_value LIKE '%user%' 
AND wp_users.time >= UNIX_TIMESTAMP(DATE_SUB(NOW(), INTERVAL 1 MINUTE)) 
ORDER BY wp_users.display_name";
不返回结果,但删除内部联接和联接条件:

SELECT wp_users.ID, wp_users.time, wp_users.display_name 
FROM wp_users 
WHERE wp_users.time >= UNIX_TIMESTAMP(DATE_SUB(NOW(), INTERVAL 1 MINUTE)) 
ORDER BY wp_users.display_name";
生产您所期望的产品。这意味着:

  • 有些用户的wp_users.time在目标间隔内,但
  • 这些用户在wp_usermeta表和
  • 其他用户确实有相应的条目,但它们与wp_users.time interval不匹配
  • 内部联接需要匹配的键条目:

    我认为你的选择是:

  • 更改数据集,以便100%的用户参与wp_usermeta表
  • 将内部联接转换为左联接或完全外部联接,并放宽where约束,例如:
    
    选择wp_users.ID、wp_users.time、wp_users.display_name
    来自wp_用户
    在wp_users.ID=wp_usermeta.user_ID上左加入wp_usermeta
    关于wp_usermeta.meta_键='wp_功能'
    和wp_usermeta.meta_值,如“%user%”
    其中wp_users.time>=UNIX_时间戳(DATE_SUB(NOW(),间隔1分钟))
    按wp_用户排序。显示_名称;
    

  • 这从技术上讲是可行的,但您的查询将接受那些对应(非参与)wp_usermeta条目只有空值的用户。

    时间
    列中存储了什么?(逻辑上)@DmytroShevchenko它有UNIX\u timestamp
    wp\u用户的类型是什么?请在此表中显示一些值的示例。如果删除第一个“AND”条件会怎么样?你有什么数据吗?您确定表中确实有填充所有条件的数据吗?看起来不像。@AlexeyShein wp_users.time有一个时间戳“1442310742”