php - 如何在搜索查询中获取包含日期范围和搜索字段(如“%xyz%”)的记录?
问题描述
这是我的 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,但未提及日期范围。如果我的日期范围为空或未选择,则结果将显示上述情况
我们可以这样写吗?
WHERE (ORGANISATIONNAME LIKE "%sa%" AND LEADID LIKE "%%" AND (CONTACTTIME LIKE "%2016-05-02%" ) AND STATUS = 0
因此,如果未选择 somwetime 日期,则它将采用所有 SA 结果
或者
WHERE (ORGANISATIONNAME LIKE "%sa%" AND LEADID LIKE "%%" AND (CONTACTTIME LIKE "%(between "fromdate" AND "todate")%" ) AND STATUS = 0
或者
其中 (ORGANISATIONNAME LIKE "%sa%" AND LEADID LIKE "%%" OR (CONTACTTIME BETWEEN (CONTACTTIME LIKE "%fromdate%" AND CONTACTTIME LIKE "%todate%"))) AND 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 确实允许双引号。我通常认为这是一种不好的做法,因为双引号还有其他用途(例如转义标识符名称)。
推荐阅读
- excel - 合并和转置多个excel文件
- php - 从比较来自 DatePicker 的日期的 MSSQL 获取数据,但获取的数据总是错误的
- python-3.x - 如何在 django 中将数据从旧数据库传输到新修改的数据库?
- windows - 设置 applocker 策略后更改强制模式
- python - Plotly 图形标题和标签为白色
- java - 无法使用弹性搜索查询更新电话号码,获取 mapper_parsing_exception
- javascript - 使用 javascript 获取今天之前的所有 90 天
- ssh - 为什么SSH隧道连接报错“kex_exchange_identification: read: Connection closed by remote host”?
- bash - jq 产生`未定义在
` 错误 - node.js - Node JS Express,请求模块大问题