MySQL查询-order by存在问题
我使用两个表来选择用户之间的消息。表“messages”用于记录消息,表“members”用于检查用户数据(它们是活动的还是删除的) 这个查询运行良好 我需要做的是按上次收到的信息列出已收到的信息。我试图在这个查询的末尾使用“orderbymessages.id DESC”,但没有成功。 将列出从第一次接收到的所有消息 这是我正在使用的mysql联接表查询:MySQL查询-order by存在问题,sql,mysql,Sql,Mysql,我使用两个表来选择用户之间的消息。表“messages”用于记录消息,表“members”用于检查用户数据(它们是活动的还是删除的) 这个查询运行良好 我需要做的是按上次收到的信息列出已收到的信息。我试图在这个查询的末尾使用“orderbymessages.id DESC”,但没有成功。 将列出从第一次接收到的所有消息 这是我正在使用的mysql联接表查询: sql = "SELECT DISTINCT messages.fromid, messages.readed,
sql = "SELECT DISTINCT messages.fromid,
messages.readed,
messages.fromid,
messages.toid ,
members.id AS pid
FROM messages
INNER JOIN members
ON members.id = messages.fromid
WHERE messages.toid = ".$mid."
AND members.status = 7
AND messages.kreaded !='1'
AND messages.subject != 'readed'
GROUP BY fromid"
有没有办法做到这一点
表中是否有“已接收”列或带有某种时间戳的列?如果你这样做了,你应该按这个顺序点菜
如果没有,请发布整个表结构,以便我们能更好地帮助您。表中是否有“已接收”列或带有某种时间戳的列?如果你这样做了,你应该按这个顺序点菜
如果没有,请发布整个表格结构,以便我们能更好地帮助您。像这样的东西怎么样
SELECT DISTINCT messages.fromid,
messages.readed,
messages.fromid,
messages.toid ,
members.id AS pid
FROM messages
INNER JOIN members
ON members.id = messages.fromid
WHERE messages.toid = ".$mid."
AND members.status = 7
AND messages.kreaded !='1'
AND messages.subject != 'readed'
ORDER BY messages.fromid ASC,
messages.id DESC
或
在messages.fromid ASC中,ASC纯粹是语法上的,如ORDER BY,而不指定ASC/DESC假定为ASC
SELECT *
FROM TABLE
ORDER BY COL ASC
与
SELECT *
FROM TABLE
ORDER BY COL
像这样的东西怎么样
SELECT DISTINCT messages.fromid,
messages.readed,
messages.fromid,
messages.toid ,
members.id AS pid
FROM messages
INNER JOIN members
ON members.id = messages.fromid
WHERE messages.toid = ".$mid."
AND members.status = 7
AND messages.kreaded !='1'
AND messages.subject != 'readed'
ORDER BY messages.fromid ASC,
messages.id DESC
或
在messages.fromid ASC中,ASC纯粹是语法上的,如ORDER BY,而不指定ASC/DESC假定为ASC
SELECT *
FROM TABLE
ORDER BY COL ASC
与
SELECT *
FROM TABLE
ORDER BY COL
我不是sql专家,当您尝试使用ORDERBY子句时,您是按messages.id排序还是使用您在语句中声明的别名“pid”?这可能会因为没有按预期工作而对订单产生影响吗?我不是sql专家,当您尝试使用order by子句时,您是按messages.id订购的还是您在语句中声明的别名“pid”?这可能会因为未按预期工作而影响订单吗?是的,有“sendtime”列,我尝试了“order by messages.sendtime DESC”,但没有任何更改。是否也选择了messages.sendtime?如果在查询中未选择它,则无法按它排序。我们需要查看您的确切查询和示例输出。只是说你试过了,但没用,这并不能解决问题。我们认为它应该能工作,所以我们需要看看它为什么不能工作。好的,这就是确切的查询:选择distinct messages.fromid,messages.id,messages.toid,messages.sendtime,messages.message,messages.subject,messages.id作为porid,members.id作为pid从messages内部加入members.id=messages.fromid其中messages.toid=$mid和members.status=7和messages.subject!='readed“GROUP BY fromid ORDER BY messages.fromid ASC,messages.sendtime DESC此查询的输出显示表中包含向用户toid发送消息的用户(GROUP BY fromid)。问题是,发送消息的用户名称下面列出的消息不是最后一条,而是第一条消息。是的,有“sendtime”列,我尝试了“ORDER BY messages.sendtime DESC”,但没有任何更改。是否也选择了messages.sendtime?如果在查询中未选择它,则无法按它排序。我们需要查看您的确切查询和示例输出。只是说你试过了,但没用,这并不能解决问题。我们认为它应该能工作,所以我们需要看看它为什么不能工作。好的,这就是确切的查询:选择distinct messages.fromid,messages.id,messages.toid,messages.sendtime,messages.message,messages.subject,messages.id作为porid,members.id作为pid从messages内部加入members.id=messages.fromid其中messages.toid=$mid和members.status=7和messages.subject!='readed“GROUP BY fromid ORDER BY messages.fromid ASC,messages.sendtime DESC此查询的输出显示表中包含向用户toid发送消息的用户(GROUP BY fromid)。问题是,发送消息的用户名称下面列出的消息不是最后一条,而是第一条消息。No。这两个我都试过了。它总是在顶部列出第一条信息。你知道你所说的几乎毫无意义。给我们看一些输入数据和扩展输出,也许我们可以看一下……不。这两个我都试过了。它总是在顶部列出第一条信息。你知道你所说的几乎毫无意义。给我们看一些输入数据和扩展的输出,也许我们可以看看。。。