PHP: filter same column two times in query
1
| $result = mysql_query("SELECT * FROM users_msgs WHERE uID = '$USER' AND date<'$lastmsg' AND date BETWEEN $Yday AND $today ORDER by date DESC LIMIT 10"); |
我得到0行,而应该有1。
但我的另一个问题是,
1 2 3
| $result = mysql_query("SELECT * FROM users_msgs WHERE uID = '$USER' AND date > $today
AND date<'$lastmsg'
ORDER by date DESC LIMIT 10"); |
号
工作正常,还过滤同一列两次?
那么,我的第一个查询有什么问题?
- 你能展示一些表格内容吗?在第一个查询中,在$Yday和$today之间有date,但在第二个查询中,有date > $today。这是矛盾的吗?顺便说一下:你应该在这个问题上贴上"mysql"标签。它与PHP无关。;)
- 第二个查询是从今天开始输出消息。第一个是昨天的,不起作用。
二是利用标准的查询不同的茶dateon the column to filter。P></
两daterequire to be less $lastmsg,but the first查询(which……你说的不好的工作date)也比前更大的平等$Ydayor less equal to or to $today。嗯……that the second查询date$today比更大。opposite of each other is the过滤。P></
没有问题,与标准的多滤波器在线柱- You have to just have to the日期要求以满足to get the results。P></
- 第二个查询是从今天开始输出消息。第一个是昨天的消息,这不起作用,所以你说的第一个消息没有什么问题吗?
- @约翰逊:没有语法错误——这只是检查你是否有数据来满足你所寻找的。$lastmsg有可能是$yday之后的日期,这可能会排除您认为应该看到的记录。
- 你好。谢谢,我刚发现是因为我想我会看到的另一张唱片和$lastmsg的日期相同,但没有显示,有没有办法解决这个问题?
- @约翰逊:对于第一个查询,是否需要与$lastmsg进行比较?或者可以用$lastmsg替换$yday吗?理想情况下,如果不需要的话,不应该在同一列上进行多次过滤。
- 是的,我两个都要
- @约翰逊:你得提供细节让我知道你想如何处理日期。也许你需要一个或,而不是和,来区分date比较?
- @小马。好的,我有这个查询,当你按下"更多"时,在第一个限制为10的查询之后。然后从第一个查询中获取最后一个日期(第10个)($lastmsg),然后在这个查询中,我希望它从第一个查询结束的位置开始,这就是为什么我使用<''。在我忘记提之前,日期应该是从昨天开始。
if the type of is日期或日期,日期时间timestamp(EN should be,如果它不是,那么你必须把你的)变量之间的简单的quotes:date BETWEEN '$Yday' AND '$today'P></
让你的变量值(contain the contain你认为他们。你也可以测试,如果你的查询返回mysql_query('...') or exit(mysql_error());安误差:P></
- 我在日期中存储Unix时间戳,类型应该是什么?
- 它不会返回任何错误
- 如果它没有返回任何错误,那么忽略我的帖子(好吧,不是针对列类型-p),问题在于变量包含什么。要么它不能为真,要么您的变量已关闭。此外,您应该使用日期/日期时间/时间戳,原因有很多:人可读的日期、能够使用日期函数、易于使用等。您可以阅读本文了解更多信息:stackoverflow.com/questions/2948494/unix timestamp vs dateti&zwnj;&8203;me