Mysql SQL查询未获得具有多个AND的结果
我使用SQL查询从MySQL数据库中获取数据: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
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.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 timestampwp\u用户的类型是什么?请在此表中显示一些值的示例。如果删除第一个“AND”条件会怎么样?你有什么数据吗?您确定表中确实有填充所有条件的数据吗?看起来不像。@AlexeyShein wp_users.time有一个时间戳“1442310742”