如何使用搜索到的数据过滤日期范围内的数据?
How to Filter Data within Date Range with Searched Data?
我已经获取了日期范围内的数据。
query = "SELECT * FROM table WHERE (date BETWEEN '2020-01-01' AND '2020-12-31')";
它能很好地显示日期之间的数据,但是当我在日期范围内搜索特定数据时,它会显示日期范围之外的所有匹配记录。
query = "SELECT * FROM table WHERE (date BETWEEN '2020-01-01' AND '2020-12-31') AND ID LIKE '%dhaval%' OR firstname LIKE '%dhaval%' OR lastname LIKE '%dhaval%' ";
以上查询搜索整个 table.
中所有名为 dhaval 的数据
我想在日期范围内搜索数据,我该怎么做?
您的条件中有括号,但位置错误。你似乎想要:
WHERE date BETWEEN '2020-01-01' AND '2020-12-31' AND
(ID LIKE '%dhaval%' OR firstname LIKE '%dhaval%' OR lastname LIKE '%dhaval%')
您需要了解 AND
和 OR
以及运算的优先级。它们的工作方式类似于算术运算符。所以,1 + 2 * 3
是 6
而不是 9
,因为它被解析为 1 + (2*3)
。在 SQL 语句中,OR
类似于 +
而 AND
类似于 *
.
你必须知道如何使用括号。
第一部分在 AND
之前,第二部分在
之后
query = "SELECT * FROM table WHERE (date BETWEEN '2020-01-01' AND '2020-12-31')
AND (ID LIKE '%dhaval%' OR firstname LIKE '%dhaval%' OR lastname LIKE '%dhaval%') ";
我已经获取了日期范围内的数据。
query = "SELECT * FROM table WHERE (date BETWEEN '2020-01-01' AND '2020-12-31')";
它能很好地显示日期之间的数据,但是当我在日期范围内搜索特定数据时,它会显示日期范围之外的所有匹配记录。
query = "SELECT * FROM table WHERE (date BETWEEN '2020-01-01' AND '2020-12-31') AND ID LIKE '%dhaval%' OR firstname LIKE '%dhaval%' OR lastname LIKE '%dhaval%' ";
以上查询搜索整个 table.
中所有名为 dhaval 的数据我想在日期范围内搜索数据,我该怎么做?
您的条件中有括号,但位置错误。你似乎想要:
WHERE date BETWEEN '2020-01-01' AND '2020-12-31' AND
(ID LIKE '%dhaval%' OR firstname LIKE '%dhaval%' OR lastname LIKE '%dhaval%')
您需要了解 AND
和 OR
以及运算的优先级。它们的工作方式类似于算术运算符。所以,1 + 2 * 3
是 6
而不是 9
,因为它被解析为 1 + (2*3)
。在 SQL 语句中,OR
类似于 +
而 AND
类似于 *
.
你必须知道如何使用括号。
第一部分在 AND
之前,第二部分在
query = "SELECT * FROM table WHERE (date BETWEEN '2020-01-01' AND '2020-12-31')
AND (ID LIKE '%dhaval%' OR firstname LIKE '%dhaval%' OR lastname LIKE '%dhaval%') ";