首页 > 解决方案 > 正确的搜索数据

问题描述

我写了一个代码来搜索表数据。我为搜索提供了多列。但是当我只搜索单个列时,时间结果不正确。截屏 :

在此处输入图像描述

查询是:--

SELECT
    * 
FROM
    file 
WHERE
    letter = "daak" 
    OR department = "" 
    OR officer = ""
    OR DATE BETWEEN "" AND "" 
ORDER BY
    DATE

当我搜索 daak 但它显示所有字母

{
 $condition = 'letter ="'.$letter.'" or department = "'.$dept.'" or officer = "'.$officer.'"or date between "'.$fdate.'" and "'.$todate.'" order by date';
          $result =$qgen->select('file','*',$condition);
}

标签: phpsql

解决方案


我认为您需要在查询中使用STR_TO_DATE mysql 内置函数:

SELECT
    * 
FROM
    file 
WHERE
    letter = 'daak'
    OR department = '' 
    OR officer = ''
    OR DATE BETWEEN STR_TO_DATE('10/09/2018','%d/%m/%Y')AND STR_TO_DATE('12/09/2018','%d/%m/%Y') 
ORDER BY
    DATE

在你的 php 代码中:

$condition = 'letter ="'.$letter.'" or department = "'.$dept.'" or officer = "'.$officer.'"or date between "STR_TO_DATE('.$fdate.', '%d/%m/%Y')" and "STR_TO_DATE('.$todate.', '%d/%m/%Y')" order by date';
          $result =$qgen->select('file','*',$condition);

推荐阅读