以下是方案。我有以下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
你是最受歡迎的;) –