这是我的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;
答案 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确实允许双引号。我通常认为这是一种不好的做法,因为双引号有其他用途(例如转义标识符名称)。