Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/226.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 如何在搜索查询中获取日期范围和搜索字段(如“%xyz%”)的记录?_Php_Mysql_Sql - Fatal编程技术网

Php 如何在搜索查询中获取日期范围和搜索字段(如“%xyz%”)的记录?

Php 如何在搜索查询中获取日期范围和搜索字段(如“%xyz%”)的记录?,php,mysql,sql,Php,Mysql,Sql,这是我的SQL查询 SELECT * FROM `newleads` WHERE (ORGANISATIONNAME LIKE "%sa%" AND LEADID LIKE "%%" OR (CONTACTTIME >= "2016-05-02" AND CONTACTTIME < "2019-05-17")) AND STATUS = 0 我必须像SA一样搜索组织名称,但在日期范围内 但我得到的记录有像sa这样的组织名称,但没有提到日期范围。 若我的日期范围为空或

这是我的SQL查询

SELECT *
FROM `newleads` 
WHERE (ORGANISATIONNAME LIKE "%sa%" AND LEADID LIKE "%%" OR (CONTACTTIME >= "2016-05-02" AND CONTACTTIME < "2019-05-17")) AND
       STATUS = 0
我必须像SA一样搜索组织名称,但在日期范围内 但我得到的记录有像sa这样的组织名称,但没有提到日期范围。 若我的日期范围为空或未选中,则结果将显示上述情况

我们可以这样写吗

其中,OrganizationName(如%sa%)和LEADID(如%%)以及CONTACTTIME(如%2016-05-02%)和STATUS=0

因此,如果未选择somwetime日期,则将获取所有SA结果

其中,fromdate和todate%之间的OrganizationName(如%sa%)和LEADID%%以及CONTACTTIME(如%),状态为0


如果OrganizationName(如%sa%)和LEADID(如%%)或CONTACTTIME(如%fromdate%)和CONTACTTIME(如%todate%)之间的CONTACTTIME(如%todate%)和STATUS=0,则如果您需要sa组织和日期范围,则我希望出现如下查询:

SELECT *
FROM `newleads` 
WHERE ORGANISATIONNAME LIKE '%sa%' AND
      STATUS = 0 AND
      CONTACTTIME >= '2018-05-02' AND CONTACTTIME < '2018-05-17';

字符串和日期常量的标准SQL分隔符是单引号,这就是我将双引号改为单引号的原因。MySQL确实允许双引号。我通常认为这是一个错误的做法,因为双引号有其他用途,例如标识符名称的逃逸。

请描述你真正需要的逻辑。样本数据和预期结果非常有用。@mickmackusa。MySQL允许字符串和日期常量使用双引号。所以,不,这个不应该因为这个原因关闭。好的。如果您愿意的话,我想看看关键字STATUS周围的倒勾。你会在这两者之间使用吗?@mickmackusa。状态不是MySQL保留字。在我看来,不必要的反勾号只会污染查询。我只是在评论之前查阅了一下。我看错医生了吗@美国米克麦克。文档有点混乱。单词旁边的R表示需要转义该值。