如何在搜索查询中获取日期范围和搜索字段的记录,例如'%xyz%'?

时间:2018-05-05 11:16:37

标签: 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但未提及日期范围。 如果我的日期范围为空或未选中,则结果将显示在上述情况

我们能以这样的方式写作吗?

在哪里(ORGANISATIONNAME喜欢&#34;%sa%&#34;和LEADID LIKE&#34; %%&#34; AND(联系时间&#34;%2016-05-02%&#34; )AND STATUS = 0

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

在哪里(ORGANISATIONNAME喜欢&#34;%sa%&#34;和LEADID LIKE&#34; %%&#34; AND(联系时间&#34;%(&#34; fromdate&#34; AND&#34; todate&#34;)%&#34;)AND STATUS = 0

其中(ORGANISATIONNAME LIKE&#34;%sa%&#34; AND LEADID LIKE&#34; %%&#34; OR(联系时间与(联系时间和#34;%from date%&#34; AND)联系方式&#34;%todate%&#34;)))和状态=&#34; 0&#34;

1 个答案:

答案 0 :(得分:1)

如果你需要&#34; sa&#34;组织和日期范围,然后我希望这样的查询:

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

字符串和日期常量的标准SQL分隔符是单引号,这就是我将双引号更改为单引号的原因。 MySQL确实允许双引号。我通常认为这是一种不好的做法,因为双引号有其他用途(例如转义标识符名称)。