mysql中3个字段,如果这3个字段中,任何一个字段有重复值,则为重复,应该怎么写?
比如
a b c
1 2 3
4 5 3
c字段重复了,那么这两条记录就算重复。
我试了这个语句:
<code>SELECT DISTINCT a,b,c FROM `table`</code>
结果不对,查出来的是3个字段都相同才排除
而我要的是3个字段中任意一个字段的值相同就排除
等于说实现的效果跟把这3个字段设置成唯一键值一样的导量,查询这3个字段的值都为唯一的结果
mysql中3个字段,如果这3个字段中,任何一个字段有重复值,则为重复,应该怎么写?
比如
a b c
1 2 3
4 5 3
c字段重复了,那么这两条记录就算重复。
我试了这个语句:
<code>SELECT DISTINCT a,b,c FROM `table`</code>
结果不对,查出来的是3个字段都相同才排除
而我要的是3个字段中任意一个字段的值相同就排除
等于说实现的效果跟把这3个字段设置成唯一键值一样的导量,查询这3个字段的值都为唯一的结果
但是你想查出什么呢…?比如1 2 3和1 4 3我应该留下哪个呢?这个查询的意义在哪里呢?
sql语句有点复杂:
<code>SELECT
t1.a,
t1.b,
t1.c
FROM
demo AS t1
WHERE
t1.a NOT IN (
SELECT
a
FROM
demo
WHERE
t1.id != id
)
AND
t1.a NOT IN (
SELECT
b
FROM
demo
WHERE
t1.id != id
)
AND
t1.a NOT IN (
SELECT
c
FROM
demo
WHERE
t1.id != id
)
AND
t1.b NOT IN (
SELECT
a
FROM
demo
WHERE
t1.id != id
)
AND
t1.b NOT IN (
SELECT
b
FROM
demo
WHERE
t1.id != id
)
AND
t1.b NOT IN (
SELECT
c
FROM
demo
WHERE
t1.id != id
)
AND
t1.c NOT IN (
SELECT
a
FROM
demo
WHERE
t1.id != id
)
AND
t1.c NOT IN (
SELECT
b
FROM
demo
WHERE
t1.id != id
)
AND
t1.c NOT IN (
SELECT
c
FROM
demo
WHERE
t1.id != id
)</code>
<code>select distinct id
from (
select distinct a from table
union
select distinct b from table
union
select distinct c from table
) as t</code>
每个人都需要一台速度更快、更稳定的 PC。随着时间的推移,垃圾文件、旧注册表数据和不必要的后台进程会占用资源并降低性能。幸运的是,许多工具可以让 Windows 保持平稳运行。
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号