所以我有一个users表,user.username有很多重复,如:
这是一个错误,这三个记录应该只有一个.
我试图提出一个SQL查询,列出他们创建日期排序的所有这些情况,因此最理想的结果应该是这样的:
username jan01 useRnAme jan02 Username jan03 john feb01 John feb02 jOhn feb03
任何建议将不胜感激
解决方法
暂时放弃区分大小写的问题,基本策略是:
SELECT username,create_date FROM your_table WHERE username IN (SELECT username FROM your_table GROUP BY username HAVING COUNT(*) > 1) ORDER BY username,create_date
许多RDBMS(包括假设您使用CHAR或VARCHAR作为用户名列的MysqL),默认情况下执行不区分大小写的搜索.对于这些数据库,上述解决方案将会起作用.为了解决其他产品的区分大小写问题,将包含除RDBMS特定的大写转换功能中的第一次用户名以外的所有内容全部包装:
SELECT username,create_date FROM your_table WHERE UPPER(username) IN (SELECT UPPER(username) FROM your_table GROUP BY UPPER(username) HAVING COUNT(*) > 1) ORDER BY username,create_date