gpt4 book ai didi

Mysql,在case语句中返回一个结果(行)

转载 作者:行者123 更新时间:2023-11-29 23:25:45 24 4
gpt4 key购买 nike

我需要帮助。我想在 SELECT 语句中返回一个结果,但我得到两个结果。我想要的是,如果所询问的语言有文本'返回文本但如果询问的语言中没有文本,则返回默认语言文本 WHERE 'text_id = 1'

textlang
lang_id text_id text
1 1 EnglishText
2 1 SpanishText

my code:
SELECT text FROM textlang Where text_id ='1'
and
CASE lang_id
WHEN 'asked_language' THEN lang_id = 'asked_language'
ELSE lang_id ='default language'
END

如果我选择西类牙语,此代码会返回英语和西类牙语文本。我只需要返回一个结果。任何想法?谢谢!

数据库架构

CREATE TABLE lang(
ID INT NOT NULL auto_increment PRIMARY KEY,
LangCode char 5,
LangName nvarchar(50)
);

CREATE TABLE text(
text_id INT NOT NULL auto_increment PRIMARY KEY
);

CREATE TABLE textlang(
textlang_id INT NOT NULL auto_increment PRIMARY KEY,
lang_id INT,
text_id INT,
text varchar(150),
FOREIGN KEY(lang_id) REFERENCES lang(ID),
FOREIGN KEY(text_id) REFERENCES text(text_id)
);

最佳答案

您可以尝试COALESCE():

SELECT COALESCE(r.text, d.text) AS text
FROM
(SELECT text
FROM textlang
WHERE text_id = 1 AND lang_id = @requestedLanguage) AS r,
(SELECT text
FROM textlang
WHERE text_id = 1 AND lang_id = @defaultLanguage) AS d;

更多信息here .

我还没有尝试过,我正在胡思乱想,所以先测试一下,它可能不会按预期工作......

关于Mysql,在case语句中返回一个结果(行),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26983862/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com