>>> from fnmatch import fnmatch
>>> [i for i in urls if fnmatch(i,'*.html')]
['http://123.45.67.89/asodibfo3ribawoifbadsoifasdf3/v.html',
'http://123.45.67.89/alwefaoewifiasdof224a/v.html',
'http://123.45.67.89/baoisdbfai235oubodsfb45/v.html']
此处$query="SELECT DISTINCT ind_id,indentdate,submitted_by
FROM raiseindent
where submitted_by='$nm'
AND indentdate BETWEEN '$fromDate' AND '$toDate'
OR indentdate BETWEEN '$fromDate' AND '$toDate'
OR submitted_by='$nm'";
是用户名
我没有收到任何错误,如果我只使用$nm
(用户名)或两个日期之间,此查询将获取记录
如果我用来搜索特定用户名和两个日期,则会在所选日期之间获取所有用户记录
我只需要在用户名字段中输入用户名的结果来进行搜索
答案 0 :(得分:1)
试试这个
$query="SELECT DISTINCT ind_id,indentdate,submitted_by
FROM raiseindent
where submitted_by='$nm'
AND indentdate BETWEEN '$fromDate' AND '$toDate'";
我认为它不需要比这更复杂。
或者如果$nm
可能为空或者日期为空,那么在PHP中执行这些测试并相应地动态构建查询,而不是尝试让SQL为您完成所有操作
$sql = 'SELECT DISTINCT ind_id,indentdate,submitted_by
FROM raiseindent
WHERE ';
if ( !empty($nm) && $nm != 'ALL' ) {
$sql .= "submitted_by='$nm' AND ";
}
if ( !empty($fromDate) && !empty($toDate) ) {
$sql .= " indentdate BETWEEN '$fromDate' AND '$toDate' ";
}
$sql = rtrim($sql, 'AND ');
答案 1 :(得分:0)
虽然已经回答了;注意尝试使用>=
和<=
来确定包含的确切开始和结束日期,而不是BETWEEN
运算符
SELECT DISTINCT ind_id,indentdate,submitted_by
FROM raiseindent
where submitted_by='$nm'
AND (indentdate >= '$fromDate' AND indentdate <= '$toDate');