select
from table ###
where not exists (
select from table ###
where # = #
and ## < ##
)
在使用mysql时,有时需要查询出某个字段不重复的记录,虽然mysql提供 有distinct这个关键字来过滤掉多余的重复记录只保留一条,但往往只用它来返回不重复记录的条数,而不是用它来返回不重记录的所有值。其原因是 distinct只能返回它的目标字段,而无法返回其它字段,这个问题让我困扰了很久,用distinct不能解决的话,只有用二重循环查询来解决。
给个例子把,比如:表table_a 4条数据
id A B C D
01 ab 1a2 1b2 121
02 ab 2a3 3b3 4a1
03 ac 1a2 1b2 121
04 ac 2a4 3b2 52g
何让A字段重复取条 比
01 ab 1a2 1b2 121
03 ac 1a2 1b2 121
保留相同A值id行
select
from table_a a
where not exists (
select 1 from table_a b
where bA = aA
and bid < aid
)
实现的方法和详细的 *** 作步骤如下:
1、第一步,使用navicat连接到mysql数据库并创建一个新的用户表,见下图,转到下面的步骤。
2、第二步,完成上述步骤后,填写一些测试内容以演示测试结果,见下图,转到下面的步骤。
3、第三步,完成上述步骤后,选择用户名,然后单击鼠标右键以选择“设计表”选项,见下图,转到下面的步骤。
4、第四步,完成上述步骤后,切换到设计表中的“索引”标签,见下图,转到下面的步骤。
5、第五步,完成上述步骤后,开始添加索引。如果不需要索引名称,则默认情况下可以为空。该工具将自动生成与字段名称相同的名称。单击字段后面的按钮以显示选择框,选择需要唯一约束的字段。在这里,登录到名称字段,见下图,转到下面的步骤。
6、第六步,完成上述步骤后,选择“索引类型”选项,唯一约束必须选择“Unique”类型,见下图,转到下面的步骤。
7、第七步,完成上述步骤后,将第三条数据的登录名修改为与第二条数据相同,然后单击下面的复选标记按钮进行保存,见下图,转到下面的步骤。
8、第八步,完成上述步骤后,保存时将报告错误,提示“Duplicate entry 'bb' for key 'login_name'”,重复的登录名无法成功保存,表明添加的唯一约束已生效,见下图。这样,就解决了这个问题了。
使用类似如下语句找出 某个表中 某个字段 在你的某条件下,为最大的一条记录:
1
2
3
4
SELECT MAX(字段) FORM 表格1 WHERE 你的条件
--或用下面查看这条记录里所有的字段的情况
SELECT FORM 表格1 WHERE 字段 IN (SELECT MAX(字段) FORM 表格1 WHERE 你的条件)
至于 “及明细”,就不知道你是什么想法了,如果是所有记录,那就直接列出所有记录就好:
1
SELECT FORM 表格1 WHERE 你的条件
<form action="a_submit" method="get" accept-charset="utf-8">
<select name="some_name" id="some_name">
<php
$sql = "SELECT `id`,`name` FROM `table` WHERE 1";
$rs = mysql_query($sql);
while($row = mysql_fetch_array($rs)){
>
<option value="<php echo $row['id'];>"><php echo $row['name'];></option>
<php
}
>
</select>
<input type="submit" name="some_name" value="">
</form>
以上就是关于在mysql数据库中如何让某个字段有重复的只取一条全部的内容,包括:在mysql数据库中如何让某个字段有重复的只取一条、在mysql数据库中如何让某个字段有重复的只取一条、如何从数据库中获取某个字段得所有值等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)