我使用的是MySql 5.5。
我需要查找具有特定ip地址的日期的用户ip。
这些字段是userid、ipaddress、startdate、enddate。
例如,我正在寻找2011年9月12日ip地址为192.168.1.1的userid。
查询应该是类似select * from database where ipaddress='192.168.1.1' and 2011-12-09 is in(startdate and enddate);
欢迎任何人帮助指出这一逻辑缺陷。谢谢。
发布于 2012-02-01 22:53:04
不太清楚你是否想要:
'2011-12-09' BETWEEN startdate AND enddate或者:
'2011-12-09' = startdate AND '2011-12-09' = enddate发布于 2012-02-01 22:54:10
显而易见的解决方案是:
[...]
AND
startdate <= '2011-12-09'
AND
enddate >= '2011-12-09'但是有一个快捷的using BETWEEN,所以你可以简单地写:
[...]
AND
'2011-12-09' BETWEEN startdate AND enddate注意:BETWEEN也适用于数字、字符串和其他东西,并且可以通过编写NOT BETWEEN来否定它-有时非常有用。
发布于 2012-02-01 22:53:26
因为有一个开始和结束日期,所以可能是这样的:
SELECT * FROM table WHERE ipaddress = '192.168.1.1' AND '2011-12-09' >= startdate AND '2001-12-09' <= enddate;或者,正如ypercube所指出的,您可以使用BETWEEN
SELECT * FROM table WHERE ipaddress = '192.168.1.1' AND '2011-12-09' BETWEEN startdate AND enddate;https://stackoverflow.com/questions/9097890
复制相似问题