MySql 去重且指定某字段在前的排序方法
今天遇到一个棘手的数据查找并去重的问题:
情况:
1.取出数据库中的数据;
2.同一字段A,不同情况<值,如A值为:a1,a2>下取出的其他数据可能相同;
3.将2情况下的重复数据<除A字段外,其他字段的数据相同>删除,且留下指定A值<如:a1>的一条数据;
4.将A<a1>存在的记录排序到最前,之后去重,保持A<a1>的数据留下,用来标记和非A<a1>值记录对比,且做不同的展示;
难点:
* 去重;
* 保留下指定A<a1>的数据;
解决方案:
1.按指定字段排序:
SELECT
tsf.supplier_id,
tsf.company_id,
tsf.record_id,
tsf.supplier_cpyname,
tsf.file_status,
tsf.create_dt,
tsf.no_check,
tsf.is_auth_updated,
soi.company_id owner_id,
taci.corporation,
taci.m_phone,
taci.contact_addr
FROM
t_supplier_files tsf
left join t_supplier_owner_info as soi on soi.supplier_id = tsf.supplier_id
left join t_app_company_info as taci on taci.company_id = tsf.company_id
left join t_supplier_regaccount_info tsri on tsri.supplier_id = tsf.supplier_id
WHERE
tsri.reg_id = 12
ORDER BY FIELD(owner_id,10000) DESC
此Sql中的:
owner_id 为 A
10000 为 a1
上述代码可以将所有的owner_id为10000的排序到最前面:FIELD() 链接
Mysql查询按照某字段指定顺序排序的两个方法,FIELD和substring_index。链接
例:
SELECT * FROM documents WHERE id IN (5,3,6,1) ORDER BY FIELD(id,5,3,6,1);
2.去重,保留指定字段数据<将owner_id为10000的数据保留下来,且去掉owner_id为其他值的重复数据去掉>
SELECT *
FROM
(
SELECT
tsf.supplier_id,
tsf.company_id,
tsf.record_id,
tsf.supplier_cpyname,
tsf.file_status,
tsf.create_dt,
tsf.no_check,
tsf.is_auth_updated,
soi.company_id owner_id,
taci.corporation,
taci.m_phone,
taci.contact_addr
FROM
t_supplier_files tsf
left join t_supplier_owner_info as soi on soi.supplier_id = tsf.supplier_id
left join t_app_company_info as taci on taci.company_id = tsf.company_id
left join t_supplier_regaccount_info tsri on tsri.supplier_id = tsf.supplier_id
WHERE
tsri.reg_id = 12
ORDER BY FIELD(owner_id,10000) DESC
) as newTable
GROUP BY newTable.supplier_id
通过 GROUP BY 重复数据中的唯一字段,将重复的数据去除掉;
结论:
将owner_id为10000的数据保留下来,即保留下来用来优先显示的数据条,且将重复的数据去除掉;这样可以保留区别字段,且有效的将重复字段去除掉;
MySql 去重且指定某字段在前的排序方法的更多相关文章
- mysql命令语句来去除掉字段中空格字符的方法
mysql有什么办法批量去掉某个字段字符中的空格?不仅是字符串前后的空格,还包含字符串中间的空格,答案是 replace,使用mysql自带的 replace 函数,另外还有个 trim 函数. ...
- Mysql中让两个字段不同时相同的方法
有时候我们会遇到这样的一种情况:有一些不同的专业,每个专业中有一些不同的学号,专业+学号能对应到个人.这时,应该如何在数据库中定义列,来保证专业+学号对应的学生的唯一性呢? 把学号定义成唯一(UNIQ ...
- mysql中整数类型后面的数字,是不是指定这个字段的长度?比如int(11),11代表11个字节吗?
原文地址: http://www.cnblogs.com/stringzero/p/5707467.html 原先对mysql不太理解,但也没有报错.但理解的不够深入.这次补上. 原来以为int ...
- replace() MySQL批量替换指定字段字符串
mysql replace实例说明: UPDATE tb1 SET f1=REPLACE(f1, 'abc', 'def'); REPLACE(str,from_str,to_str) 在字符串 st ...
- mysql函数之七:replace() MySQL批量替换指定字段字符串
mysql replace实例说明: UPDATE tb1 SET f1=REPLACE(f1, 'abc', 'def'); REPLACE(str,from_str,to_str) 在字符串 st ...
- MySQL中TEXT与BLOB字段类型的区别
这篇文章主要介绍了MySQL中TEXT与BLOB字段类型的区别,本文总结了6大区别,需要的朋友可以参考下 在MySQL中有两个字段类型容易让人感觉混淆,那就是TEXT与BLOB,特别是自己写博客程 ...
- mysql数据库user表host字段的%问题
搜索: mysql数据库user表host字段的%问题 连接:http://blog.csdn.net/xiaomengh/article/details/48706149 在mysql数据库中,使用 ...
- mysql向表中某字段后追加一段字符串:
mysql向表中某字段后追加一段字符串:update table_name set field=CONCAT(field,'',str) mysql 向表中某字段前加字符串update table_n ...
- MySQL中int类型的字段使用like查询方法
方法参考自: http://stackoverflow.com/questions/8422455/performing-a-like-comparison-on-an-int-field 也就是使用 ...
随机推荐
- 如何获取各大平台的播放地址(获得优酷的m3u8播放地址)为例
1.打开safari 2.在顶部(黑色小苹果)旁边,点击safari. 3.打开里面的 偏好设置. 4.在高级 中 找到 “在菜单栏中显示开发菜单” 并打勾. 5.关闭窗口后,可以发现safari 顶 ...
- Android系统版本与API Level对照表
Platform Version API Level VERSION_CODE Notes Android 4.2 17 JELLY_BEAN_MR1 Android 4.1, 4.1.1 16 ...
- 解析八大O2O典范:他们都做了什么?
随着无线技术的发展二维码的发展以及智能手机的普及,零售的解决方案不仅在在一台电脑上解决,可以从线上到线下,为消费者贯通线上线下的购物体验.人人都爱O2O,可做得好的O2O案例却并不多.要解决利益分配. ...
- 加载 pcntl 多进程
加载 pcntl 有两种方式 一种重新编译安装,在编译时加 --enable-pcntl ./configure --prefix=/usr/local/php --with-mysql=/usr/l ...
- ASP.NET数据验证控件的常用的属性
一.非空验证 RequiredFieldValidator ControlToValidate 所验证的控件ID Text 出错时的提示的文本 ErrorMessage 提交给Validati ...
- oracle 树状查询
做树状查询的时候,oracle有自己的优势,一条sql语句就可以搞定,而mysql这种数据库就只能用递归了... 递归的项目实例: //递归取到栏目路径 public List getTreeList ...
- 【转】MYSQL入门学习之五:MYSQL的字符集
转载地址:http://www.2cto.com/database/201212/175541.html MySQL的字符集支持(Character Set Support)有两个方面:字符集(Cha ...
- Android Webview实现文件下载功能
在做美图欣赏Android应用的时候,其中有涉及到Android应用下载的功能,这个应用本身其实也比较简单,就是通过WebView控制调用相应的WEB页面进行展示.刚开始以为和普通的文件下载实 ...
- Wireless Network
Wireless Network Time Limit: 10000MS Memory Limit: 65536K Total Submissions: 19626 Accepted: 8234 De ...
- Scrapy集成selenium+PhantomJS+代理IP 解析js动态内容
转载于:http://blog.aizhet.com/web/16523.html