mysql - 具有多联合的重复条目

标签 mysql union distinct

我有这个

               (SELECT  DISTINCT '1' as sb,nome,id,sobrenome,nasc,genero,escol FROM usuarios WHERE nome          REGEXP 'leidiana da'    AND tipo <> '7') 
UNION DISTINCT (SELECT  DISTINCT '2' as sb,nome,id,sobrenome,nasc,genero,escol FROM usuarios WHERE sobrenome     REGEXP 'da silva dias'  AND tipo <> '7') 
UNION DISTINCT (SELECT  DISTINCT '3' as sb,nome,id,sobrenome,nasc,genero,escol FROM usuarios WHERE nome          REGEXP 'leidiana'       AND sobrenome      REGEXP 'da silva dias'   AND tipo <> '7') 
UNION DISTINCT (SELECT  DISTINCT '4' as sb,nome,id,sobrenome,nasc,genero,escol FROM usuarios WHERE nome          REGEXP 'leidiana da'    AND sobrenome      REGEXP 'silva dias'      AND tipo <> '7') 
UNION DISTINCT (SELECT  DISTINCT '5' as sb,nome,id,sobrenome,nasc,genero,escol FROM usuarios WHERE sobrenome     REGEXP 'silva dias'     AND tipo <> '7') 
UNION DISTINCT (SELECT  DISTINCT '6' as sb,nome,id,sobrenome,nasc,genero,escol FROM usuarios WHERE nome          REGEXP 'leidiana'       AND tipo <> '7') 
UNION DISTINCT (SELECT  DISTINCT '7' as sb,nome,id,sobrenome,nasc,genero,escol FROM usuarios WHERE nome          REGEXP 'leidiana'       AND tipo <> '7') 
UNION DISTINCT (SELECT  DISTINCT '8' as sb,nome,id,sobrenome,nasc,genero,escol FROM usuarios WHERE sobrenome     REGEXP 'leidiana'       AND tipo <> '7') 
UNION DISTINCT (SELECT  DISTINCT '9' as sb,nome,id,sobrenome,nasc,genero,escol FROM usuarios WHERE sobrenome     REGEXP 'leidiana da'    AND tipo <> '7')   ORDER BY sb

结果:

2 - 莱迪安娜·达·席尔瓦·迪亚斯 3 - 莱迪安娜·达席尔瓦·迪亚斯 4 - 莱迪安娜·达席尔瓦·迪亚斯 5 - 莱迪安娜·达席尔瓦·迪亚斯 6 - 雷迪安娜·达·席尔瓦·迪亚斯

7 - leidiana da silva dias

正如你所看到的,我试图解决这个问题,最终把所有的东西都放在了不同的位置。 rs

最佳答案

您强制联合的结果与第一列 (sb) 不同。您可能可以使用外部 GROUP BY 解决问题:

SELECT min(sb) AS sb, name, id,sobrenome,nasc,genero,escol
FROM (
      (SELECT  '1' as sb,nome,id,sobrenome,nasc,genero,escol FROM usuarios WHERE nome          REGEXP 'leidiana da'    AND tipo <> '7') 
UNION (SELECT  '2' as sb,nome,id,sobrenome,nasc,genero,escol FROM usuarios WHERE sobrenome     REGEXP 'da silva dias'  AND tipo <> '7') 
UNION (SELECT  '3' as sb,nome,id,sobrenome,nasc,genero,escol FROM usuarios WHERE nome          REGEXP 'leidiana'       AND sobrenome      REGEXP 'da silva dias'   AND tipo <> '7') 
UNION (SELECT  '4' as sb,nome,id,sobrenome,nasc,genero,escol FROM usuarios WHERE nome          REGEXP 'leidiana da'    AND sobrenome      REGEXP 'silva dias'      AND tipo <> '7') 
UNION (SELECT  '5' as sb,nome,id,sobrenome,nasc,genero,escol FROM usuarios WHERE sobrenome     REGEXP 'silva dias'     AND tipo <> '7') 
UNION (SELECT  '6' as sb,nome,id,sobrenome,nasc,genero,escol FROM usuarios WHERE nome          REGEXP 'leidiana'       AND tipo <> '7') 
UNION (SELECT  '7' as sb,nome,id,sobrenome,nasc,genero,escol FROM usuarios WHERE nome          REGEXP 'leidiana'       AND tipo <> '7') 
UNION (SELECT  '8' as sb,nome,id,sobrenome,nasc,genero,escol FROM usuarios WHERE sobrenome     REGEXP 'leidiana'       AND tipo <> '7') 
UNION (SELECT  '9' as sb,nome,id,sobrenome,nasc,genero,escol FROM usuarios WHERE sobrenome     REGEXP 'leidiana da'    AND tipo <> '7')) sbs
GROUP BY name, id,sobrenome,nasc,genero,escol
ORDER BY sb

关于mysql - 具有多联合的重复条目,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7327086/

相关文章:

php - 多个 while 循环无法正常工作

mysql - 子查询返回值但我的查询为零行

mysql - signalr:如何更新所有具有特定 cookie 值的客户端?

mysql 表联合和新列

mysql - 如果主键与第三个表匹配并按第三个表排序,我将如何连接两个表?

php - 从 wordpress/woocommerce 搜索查询中获取不同的结果

mysql - 查找购买最多的产品

algorithm - 反向操作到 "Union and find"

r - 检索不同的序列模式

R:在保持顺序的同时折叠列中的重复值