如何使用搜索到的数据过滤日期范围内的数据?

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%')

您需要了解 ANDOR 以及运算的优先级。它们的工作方式类似于算术运算符。所以,1 + 2 * 36 而不是 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%') ";