我在MySQL中有以下語言表來選擇不同語言的文本。MySQL按鍵選擇行或回退以默認選擇鍵
CREATE TABLE `lang` (
`id` INT(10) UNSIGNED NOT NULL AUTO_INCREMENT,
`group` INT(10) UNSIGNED NOT NULL,
`text` VARCHAR(255) NULL DEFAULT NULL,
`language` VARCHAR(10) NOT NULL DEFAULT 'def',
PRIMARY KEY (`id`),
UNIQUE INDEX `group_language` (`group`, `language`)
)
COLLATE='utf8_general_ci'
ENGINE=InnoDB
ROW_FORMAT=DEFAULT
表包含以下數據
id group text language
1 1 This is English def
2 2 Helo sir def
3 3 how are you? def
4 3 Wie geht es dir? de
組字段告訴我什麼文本屬於彼此的每一份稿件。 在上面的例子中,組「3」有默認文本(英文)和德文翻譯。
現在我想選擇德語的所有文本,如果他們不存在,我會希望有這個後備英語文本。
任何人的想法如何將它們放到一起的SQL語句?
對我來說很可靠:-) – lockdoc
我認爲這段代碼更好: SELECT COALESCE(b.ID,a.ID)ID, COALESCE(b.'GROUP',a。 'GROUP')'GROUP', COALESCE(b.'text',a.'text')'text', COALESCE(b.language,a.language)language FROM TableName a LEFT JOIN FROM tableName b ON b.language ='de'and a.language ='def'AND a.'GROUP' = b.'GROUP' –