gpt4 book ai didi

MySQL 条件 Where 子句

转载 作者:可可西里 更新时间:2023-11-01 08:56:25 24 4
gpt4 key购买 nike

我尝试根据所选的特定语言在单个查询中输出列表。但我需要做的是,如果该列表不适用于所选语言,那么它将返回英文(如果存在)。

因此,如果英语为“en”而日语为“jp”,则以下当前返回日语列表:

SELECT * 
FROM listings LS
LEFT JOIN listing_langs LANG ON LS.listing_id = LANG.listing_id
WHERE LANG.language = 'jp'

我试图找出在 MySQL 中设置查询的可能性,以便它首先查找:LANG.language = 'jp',然后返回日语列表(就像现在一样),但是如果结果为空,然后查找:LANG.language = 'en' 并返回英文列表(如果存在)。

所以基本上,如果日语列表存在,则返回它,但如果不存在,则默认为英语列表。

最佳答案

你总是可以这样做:

SELECT * 
FROM listings LS
LEFT JOIN listing_langs LANG ON (LS.listing_id = LANG.listing_id AND LANG.language = 'jp' OR
(NOT EXISTS (SELECT 1 FROM listing_langs WHERE listing_langs.listing_id = LS.listing_id AND listing_langs.language = 'jp') AND LANG.language = 'en')

也就是说,显式检查 JOIN 以查看是否没有 jp 的行,如果没有,则使用 en

这是一个很大的丑陋,但它确实简洁地捕获了你正在尝试做的事情的本质。

关于MySQL 条件 Where 子句,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4227116/

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