我有两个非常相似的查询运行到我的sqlite文件。
1:
SELECT *
FROM gca_logged
WHERE UserID='39'
AND dateStamp LIKE '%09/16/2016'
ORDER BY uniqueID DESC
2:
SELECT *
FROM gca_logged
WHERE UserID='39'
AND dateStamp LIKE '%%'
ORDER BY uniqueID DESC
我的问题是WHERE UserID='39' AND dateStamp LIKE '%%'
只返回WHERE UserID='39' AND dateStamp LIKE '%09/16/2016'
返回预期的行数。
同样,我在页面上的代码根本不使用UserID,例如WHERE dateStamp LIKE '%%
& WHERE dateStamp LIKE'%09/16/2016%
这些也会返回预期的输出。因此,当我尝试使用UserID和dateStamp LIKE '%%'
2与1相同,但没有日期戳检查。
现在,这是奇怪的部分;查询1返回预期的正确行数。基本上是当天输入的行数。
第2行返回0行。第2行应返回为用户39输入的所有行 - 但它返回0.
我很难理解这一点。
我的代码:
@$dEx = explode("-",$_GET['date']);
$searchDate2 = $dEx[1]."/".$dEx[2]."/".$dEx[0]; //m/d/Y -> Y-m-d
if (0 === strpos($searchDate2, '//')) {
$searchDate2 = substr($searchDate2, 2);
}
if(strcmp($_GET['date'],"showAllTime") == 0) {
$searchDate2 = "";
}
$sql = "SELECT * FROM gca_logged WHERE UserID='".$_GET['adminSearch']."' AND dateStamp LIKE '%$searchDate2%' ORDER BY uniqueID DESC";
我按照评论中的建议尝试了代码$sql = "SELECT * FROM gca_logged WHERE UserID='".$_GET['adminSearch']."' AND dateStamp LIKE '%".$searchDate2."%' ORDER BY uniqueID DESC";
,没有区别。
(如果_GET ['date']等于showAllTime,则日期变量设置为“”。当回显$ sql变量时,它们看起来是正确的。
此方法适用于网站上的其他位置,但不适用于此页面。
我之前删除的半相关代码:
if((isSet($_GET['all'])) && ($_GET['all'] == 1)) {
$sql = "SELECT * FROM gca_logged WHERE dateStamp LIKE '%$searchDate2%' ORDER BY uniqueID DESC";
} else {
$sql = "SELECT * FROM gca_logged WHERE UserID='".$_GET['adminSearch']."' AND dateStamp LIKE '%".$searchDate2."%' ORDER BY uniqueID DESC";
}
这些是2个不同的查询,一个包含UserID,另一个没有。如果if变量是正确的,就像在没有UserID的情况下使用查询一样,它就像它应该的那样工作 - 返回所有结果或仅返回选定日期。
所以我的问题不是查询没有 UserID,而是查询 用户ID。
答案 0 :(得分:0)
你正在比较错误的东西
您的查询
SELECT *
FROM gca_logged
WHERE UserID='39'
AND dateStamp LIKE '%09/16/2016'
ORDER BY uniqueID DESC
SELECT *
FROM gca_logged
WHERE UserID='39'
AND dateStamp LIKE '%%'
ORDER BY uniqueID DESC
您的代码,显示一个人甚至不选择userID
SELECT *
FROM gca_logged
WHERE dateStamp LIKE '%09/16/2016%'
ORDER BY uniqueID DESC
SELECT *
FROM gca_logged
WHERE UserID='39'
AND dateStamp LIKE '%09/16/2016%'
ORDER BY uniqueID DESC