如何在数据库

时间:2016-06-22 09:56:35

标签: php mysql duplicates

我正在尝试编写一个查询,该查询将从表中提取所有具有不同值的重复条目的记录。目的是使用户能够标记集合中的哪个记录是主要观察。

表格字段:

idTable (Index), idPlant, idParameter, Value (tinytext), IsPrimary (Yes/No, default No)

我希望能够仅显示具有相同idPlantidParameter的记录,其中值不同但我想列出实际记录而不是重复次数(这很容易做到) )。然后,用户可以为每个(idPlant and idParameter)组选择哪个idTable是更新表的主要数据,并将IsPrimary设置为“是”。

我确信这一定是可能的,但到目前为止我能看到的唯一方法是MySQL和PHP处理的多步骤过程。

我无法得到类似问题的答案,因为我正在分组两列。

我尝试使用SQL小提琴,但也无法使用它。所以我已经包含了create SQL语句和一些示例数据

我正在尝试创建一个Query,它将显示idPhenotype = 3,4,5的整个记录​​(因为其中一个不匹配)和7,8(再次因为一个不匹配)但忽略了idPhenotype 10, 11因为PhenotypeValue是相同的

表SQL

CREATE TABLE IF NOT EXISTS `phenotype` 
 (  `idPhenotype` int(10) unsigned NOT NULL AUTO_INCREMENT
 ,  `idPhenotypeDef` int(11) DEFAULT NULL
 ,  `idPlant` mediumint(9) NOT NULL,  `PhenotypeParameter` tinytext
 ,  `PhenotypeValue` text
 ,  `PhenotypeDescribedBy` tinytext
 ,  `NewestData` enum('Yes','No') NOT NULL DEFAULT 'Yes'
 ,  PRIMARY KEY (`idPhenotype`)
 ,  UNIQUE KEY `idPhenotype_UNIQUE` (`idPhenotype`)
 ) ENGINE=MyISAM  DEFAULT CHARSET=latin1 AUTO_INCREMENT=509165 ;

数据SQL

INSERT INTO `phenotype` (`idPhenotype`, `idPhenotypeDef`, `idPlant`
, `PhenotypeParameter`, `PhenotypeValue`, `PhenotypeDescribedBy`
, `NewestData`) VALUES
 (1, 1, 1, 'Front', 'Green', 'Historic Data', 'Yes')
,(2, 1, 2, 'Front', 'Green', 'Historic Data', 'Yes')
,(3, 1, 3, 'Front', 'Green', 'Historic Data', 'Yes')
,(4, 1, 3, 'Front', 'Dark Green', 'Historic Data', 'Yes')
,(5, 1, 3, 'Front', 'Green', 'Historic Data', 'Yes')
,(6, 1, 19, 'Front', 'Green', 'Historic Data', 'Yes')
,(7, 1, 20, 'Front', 'Green', 'Historic Data', 'Yes')
,(8, 1, 20, 'Front', 'Brown', 'Historic Data', 'Yes')
,(9, 1, 205, 'Front', 'Green', 'Historic Data', 'Yes')
,(10, 2, 1, 'Back', 'Green', 'Historic Data', 'Yes')
,(11, 2, 1, 'Back', 'Green', 'Historic Data', 'Yes')
,(12, 2, 12, 'Back', 'Green', 'Historic Data', 'Yes')
,(13, 2, 13, 'Back', 'Green', 'Historic Data', 'Yes')
,(14, 2, 14, 'Back', 'Green', 'Historic Data', 'Yes')
,(15, 2, 15, 'Back', 'Green', 'Historic Data', 'Yes');

http://sqlfiddle.com/#!9/346b4

1 个答案:

答案 0 :(得分:1)

我相信你需要“拥抱”建设:

试试这个:

instanceof