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 也就是使用 ...
随机推荐
- Python 编码规范
官网规范:https://www.python.org/dev/peps/pep-0008/ 1.不在同一句import中引用多个库 # 正确姿势: import os import sys # 错误 ...
- [C++][代码库]Vector3空间向量类
本文用C++实现一个简单的Vector3类的功能,暂时有的功能是: 1 + - * /算术运算 2 向量的数量积,又叫:点乘 3 向量的向量积,又叫:叉乘 4 向量单位化(normalization) ...
- 每日一九度之 题目1042:Coincidence
时间限制:1 秒 内存限制:32 兆 特殊判题:否 提交:3007 解决:1638 题目描述: Find a longest common subsequence of two strings. 输入 ...
- Linux编译安装Mysql步骤
一. Centos 用 wget 下载需要的软件,保存到目录/home/zwl/MySql/下 wget http://dev.mysql.com/get/Downloads/MySQL-5.5/my ...
- JavaScript中创建类,赋值给ajax中的data参数
缘由:因为要给根据是否选中checkbox来动态增加ajax中data的属性(ajax的data属性格式的几种方法,参考http://www.jb51.net/article/46676.htm) d ...
- c#对话框
OpenFileDialog open = new OpenFileDialog();//创建对话框 open.InitialDirectory = @"C:\Documents and S ...
- HTML,javaScript,DOM详解
HTML DOM 教程 DOM 教程 DOM 简介 HTML DOM 定义了访问和操作 HTML 文档的标准方法. DOM 将 HTML 文档表达为树结构. HTML DOM 树 HTML DOM 简 ...
- 配置开发支持高并发TCP连接的Linux应用程序全攻略
http://blog.chinaunix.net/uid-20733992-id-3447120.html http://blog.chinaunix.net/space.php?uid=16480 ...
- JAVA基础知识之数据类型
JAVA的数据类型知识点主要包括基本数据类型,包装类,字符串类(String,StringBuffer, StringBuilder区别和用法),数组,数据类型转换等等,暂时只想到这么多,后面会再补充 ...
- python中字符串\r的奇怪问题
示例: 我这里有一字符串: u'北京市工商行政管理局大兴分局\r <a onclick="showJDS(\'fa641bb3be5b44a1b618433833982fee\',\' ...