mysql数据去重并排序使用distinct 和 order by 的问题
2018-08-26 20:24
876 查看
比如直接使用:
SELECT
distinct mobile
FROM
table_a
WHERE
code = 123
ORDER BY
a_ime desc
在本地mysql数据库没有错,在线上的数据库就会报如下错(估计是版本的问题):
Expression #1 of ORDER BY clause is not in SELECT list, references column 'table_a.a_time' which is not in SELECT list
大意是:
order by 的列必须在 select中有。如果直接在select 中添加a_time 列,是不符合题意的
应该增加一层嵌套,改成如下:
SELECT
distinct mobile
FROM (
SELECT
mobile
FROM
table_a
WHERE
code = 123
ORDER BY
a_time desc
) as tmp
最后一句as map 必须要,如果没有这一句,就报语法错误:
Every derived table must have its own alias
每一个派生出来的表都必须有一个自己的别名
原创文章,欢迎转载,转载请注明出处!
相关文章推荐
- mysql 5.6 order by limit 排序分页数据重复问题
- mysql GROUP BY 与 ORDER BY数据排序问题
- mysql :group by 与order by 共同使用时排序问题,小心utf8的排序
- MySQL使用 IN 查询取出数据排序问题(与in排序相同、不排序)
- MySql 数据库group by 的用法,order by 嵌套使用。优化问题
- access中,有无将文本类型的数据格式转化成数值型的函数?(解决 order by 的非数字排序问题)
- 使用MySQL保存中文数据时,经常会遇到乱码问题的解决思路
- C# Winform 使用 MYSQL 新增,读取数据乱码问题
- mysql同时使用order by和limit查询时的一个严重隐患 -- 丢失数据
- mysql5.6中 order by 多个字段排序问题
- MySQL数据分页查询---limit、order by的使用
- SQL中distinct与order by联合使用应该注意的问题
- 解决使用HIBERNATE对ORACLE数据库中数据进行排序分页错乱的问题
- MySQL学习笔记(三):order by排序问题
- 网页客户端使用php访问mysql数据时出现NetworkError: 500 Internal Server Error问题的解决方案
- 解决Mysql数据量大的时候 分页优化(使用limit)的问题
- 使用SELECT赋值时再用ORDER BY排序所产生的问题
- mysql使用sql导入数据中文乱码问题
- WinForm中DataGridView使用DataView的Sort排序后删除数据行数错误问题
- 完美的使用 DISTINCT 和 ORDER BY 使用第三个字段进行排序(转载)