字段相同的值-MySQL查询求帮助快绝望了

问题描述

MySQL查询求帮助快绝望了

所有的查询都在USER表,我分解开了条件,第一个SELECT * FROM USER u WHERE u.channelId='301040';
根据查出来userDeviceid的值查,第二条件
想得到userDeviced字段相同的值大于2条和2条以上所对应的用户

想最终得到,这种数据,每条用户的名字Code不一样,但是userDeviceId是一样的

解决方案

 select * from user  where userDeviceid in(
SELECT userDeviceid FROM user where channelId='301040' GROUP BY userDeviceid having count(*)>=2
)

解决方案二:

SELECT channelId FROM USER u
group by u.channelId
having count(*) > 1

解决方案三:

= =
不知道理解的对不对
先找出userDeviced数量大于2条的,然后join user,得到对应的数据

 select a.* from
(select * from user )a join
(select  userDeviced,count(1) from user group by userDeviced having count(1)>=2)b on a.userDeviced=b.userDeviced

解决方案四:

 select distinct * from user where userDeviceid IN(
select * from user group by  channelId having count(*)>=2)

解决方案五:

select * from USER  where userDeviceid  in (select userDeviceid  from USER where USER.channelId='301040') group by userDeviceid HAVING count(*) >=2;

解决方案六:

SELECT channelId FROM USER u group by u.channelId having count(*) > 1

时间: 2024-11-23 19:16:43

字段相同的值-MySQL查询求帮助快绝望了的相关文章

mysql查询 求大神,急啊。。。。

问题描述 mysql查询 求大神,急啊.... 求大神帮我看看这sql语句该怎么写呢,查询出来类似于树的节点 解决方案 你都说了要循环, sql语句肯定做不了啊,不是方法就是存储过程了 解决方案二: 递归查询,都有现成的函数和方法.MySQL中直接用SQL实现不了http://jingyan.baidu.com/article/647f01158ee0da7f2148a80b.html

mysql批量更新多条记录的同一个字段为不同值的方法_Mysql

首先mysql更新数据的某个字段,一般这样写: UPDATE mytable SET myfield = 'value' WHERE other_field = 'other_value'; 也可以这样用in指定要更新的记录: UPDATE mytable SET myfield = 'value' WHERE other_field in ('other_values'); 这里注意 'other_values' 是一个逗号(,)分隔的字符串,如:1,2,3 如果更新多条数据而且每条记录要更新

关于mysql查询差值的方法

问题描述 关于mysql查询差值的方法 当前我有表test,字段id,click,share 我的需求是 算出同一id,click数最大的click和share,减去click第二大的click和share 解决方案 分析: 从题主描述的字段值猜测,这是一个类似于"热帖排序"的问题,id并不是我们通常认为的主键id,而是关联到帖子的外键.click值在排序上高于share值,因此先看click再看share,通过两者的一个加权值取得排序结果. 对于题主所描述的直接需求,个人意见是先li

mysql 数据导出修改表结构后,再导入,新添加的字段插入默认值

问题描述 mysql 数据导出修改表结构后,再导入,新添加的字段插入默认值 要实现的例子: 表A (a0,a1) 拥有数据100条 现在要将表结构修改为,A(a0,a1,a2),但是不想重新输入数据 所以,想先从旧的表中到处数据,然后导入新表,字段a2取默认值或固定值 求解决方案!! 解决方案 在各位大神的提示下,经过测试,alter table A add a2 数据类型 default 值 可以更改表结构 因此呢,我打算先把原表更改结构,导出数据,然后再将原表恢复原样 这样很安全了,不会影响

mysql查询,因为字段设计有差异

问题描述 mysql查询,因为字段设计有差异 有2表,1张短信表(发送量int,时间timestamp), 1张流量表(流量数varchar,时间bigint) 求2015年每月短信总数和流量总数 解决方案 MySQL字段拼接查询 解决方案二: 做类型转化啊:: 因为你并没有说存的时间是什么时候所以我就默认为天 第一张就是 select sum(短信) from 短信表 where to_char(时间) like ''%找出当月所有时间段的共同点%//得到的是短信总和 第二张表是 select

golang mysql查询返回不定字段

golang mysql查询返回不定字段实现如下: 首先通过func (rs *Rows) Columns() ([]string, error)获取查询字段的slice,然后构造slice,将每次scan出来的值放进去,最后返回查询结果的map slice. package main   import (  "database/sql"  "fmt"  _ "github.com/go-sql-driver/mysql" )   func ma

将MySQL查询结果按值排序的简要教程_Mysql

MySQL查询结果如何排序呢?这是很多人都提过的问题,下面就教您如何对MySQL查询结果按某值排序,如果您感兴趣的话,不妨一看. 之前有一个功能修改,要求MySQL查询结果中: id name * * * 1 lucy ... 3 lucy ... 2 lily ... 4 lucy ... 名字为lucy的优先排在前面,百思不得其解,可能有人会说简单 union嘛 或者弄个临时表什么的,其实我也想过,但是本身SQL逻辑就很多了(上面只是简例),再union的话或者临时表可能绕很大的弯路,后来看

php、mysql查询当天,查询本周,查询本月的数据实例(字段是时间戳)

php.mysql查询当天,查询本周,查询本月的数据实例(字段是时间戳) //其中 video 是表名: //createtime 是字段: // //数据库time字段为时间戳 // //查询当天: $start = date('Y-m-d 00:00:00'); $end = date('Y-m-d H:i:s'); SELECT * FROM `table_name` WHERE `time` >= unix_timestamp( '$start' ) AND `time` <= uni

MySQL中各种字段的取值范围

mysql MySQL中各种字段的取值范围过节回来,网站更新的第一篇文章.看来我有必要在最近找到一位志同道合的同学一起来维护站点才行了----------------------------------------------------------------TINYINT -128 - 127 TINYINT UNSIGNED 0 - 255 SMALLINT -32768 - 32767 SMALLINT UNSIGNED 0 - 65535 MEDIUMINT -8388608 - 83