以下是方案。我有以下MySQL表SQL查询选择备用选项
CREATE TABLE IF NOT EXISTS `pages` (
`ciso` varchar(3) CHARACTER SET ascii NOT NULL DEFAULT 'AUS',
`page` varchar(24) CHARACTER SET ascii NOT NULL,
`dgroup` TINYINT(1) DEFAULT 0,
UNIQUE KEY `page` (`page`,`ciso`),
) ENGINE=InnoDB DEFAULT CHARSET=latin1;
通常它会与首席信息安全官=“AUS”多个页面项。在某些情况下,会有一个特定于美国的重写条目,其中页面名称与AUS条目相同,但是ciso ='USA'。
我不时需要做的是 - 选择具有指定dgroup设置的所有页面条目& ciso ='USA',但如果不存在这样的条目,则返回匹配的AUS条目。为了让这个更清楚一点
page ciso dgroup
PgA AUS 3
PgB AUS 3
PgC AUS 3
PgD AUS 4
PgB USA 3
PgC USA 3
在这种情况下查询,为DGROUP = 3,应返回PGA:AUS,PGB:美国和PGC:美国。
我可以用一点PHP来处理所有这些,但我怀疑可以编写一个能够完成这项工作的SQL智能。只是,当谈到SQL时,我并不那么聪明。也许这里有人可以帮忙?
谢谢你,做到了。我只做很基本的SQL,但即使如此,当我阅读你的答案时,我有一点荷马西姆森的时刻 - 为什么我没有想到或! – DroidOS
你是最受欢迎的;) –