我有一个数据库,里面有从一个用户到另一个用户的直接消息。
表名: dm
id int(11)主键
收件人: varchar
发件人: varchar
消息: varchar
我有一条SQL语句,它从to和from列中选择不同的值,就像它们是一列一样。($username是一个会话变量)
"SELECT DISTINCT from
FROM dm
WHERE to = '$username'
UNION
SELECT DISTINCT to
FROM dm
WHERE from = '$username'
";
我正在检查这个用户是否基本上已经收到或发送了任何消息。我想按dm的id排序。我如何改变我的代码,使我得到相同的结果,并按id DESC排序?如果我像这样简单地输入ORDER BY,我会得到一个错误,因为我没有选择它...非常感谢你的帮助
"SELECT DISTINCT from
FROM dm
WHERE to = '$username'
UNION
SELECT DISTINCT to
FROM dm
WHERE from = '$username'
ORDER BY id DESC
";
发布于 2018-05-30 06:52:26
如果我得到了你想要做的事情,你应该把事情分开:
第一步:原始代码,加上添加到数据集中的用户ID
CREATE TABLE new_table_name AS
SELECT DISTINCT ID, from
FROM dm
WHERE to = '$username'
UNION
SELECT DISTINCT ID, to
FROM dm
WHERE from = '$username';
第二步:按ID排序
CREATE TABLE ordered_table AS
SELECT *
FROM new_table_name
ORDER BY ID DESC;
https://stackoverflow.com/questions/50593880
复制相似问题