查询中的多个where子句失败

时间:2009-04-20 12:24:59

标签: sql mysql

我试图从我的表中选择以下查询:

SELECT ARTICLE_NO, USERNAME, ACCESSSTARTS, ARTICLE_NAME, 
date_format(str_to_date(ACCESSSTARTS, '%d.%m.%Y %k:%i:%s'), '%d %m %Y' ) AS shortDate 
FROM AUCTIONS WHERE SUBCAT = 'fake' and USERNAME = 'testuser' ORDER BY 
str_to_date(ACCESSSTARTS, '%d.%m.%Y %k:%i:%s'), article_no limit 0, 10

我得到0结果。

然而,两者

SELECT ARTICLE_NO, USERNAME, ACCESSSTARTS, ARTICLE_NAME, 
date_format(str_to_date(ACCESSSTARTS, '%d.%m.%Y %k:%i:%s'), '%d %m %Y' ) AS shortDate 
FROM AUCTIONS WHERE SUBCAT = 'fake' ORDER BY 
str_to_date(ACCESSSTARTS, '%d.%m.%Y %k:%i:%s'), article_no limit 0, 10

SELECT ARTICLE_NO, USERNAME, ACCESSSTARTS, ARTICLE_NAME, 
date_format(str_to_date(ACCESSSTARTS, '%d.%m.%Y %k:%i:%s'), '%d %m %Y' ) AS shortDate 
FROM AUCTIONS WHERE USERNAME = 'testuser' ORDER BY 
str_to_date(ACCESSSTARTS, '%d.%m.%Y %k:%i:%s'), article_no limit 0, 10

返回预期的结果集。他们为什么不一起工作?

2 个答案:

答案 0 :(得分:2)

我认为,你没有结合“假”和“testuser”的结果? (你是说OR?)

答案 1 :(得分:2)

WHERE SUBCAT ='fake'和USERNAME ='testuser'

应该是:

WHAB SUBCAT ='假' USERNAME ='testuser'

这会返回两个结果,这是你正好追求的吗?

编辑: 对不起,误读了这些字段。将“SUBCAT”列添加到查询中,这样您就可以查看每个查询的出现次数,并确保在应用两个where子句之前组合将产生结果。