mysql 不在一个值_mysql-如果不存在另一个值,如何根据一个值...

如果我正确地理解了您的意思,那么如果已经存在使用相同语言和标题的首选语言的行,则希望使用后备语言“删除”这些行.

您可以使用LEFT JOIN作为后备语言来检查是否存在使用首选语言的条目.例如,如果您的首选语言是“ nl”,后备语言是“ en”,则查询可能类似于:

select blocks.*

from blocks

left join blocks b1

on b1.slug = blocks.slug

and b1.title = blocks.title

and b1.language = 'nl'

and blocks.language <> 'nl'

where blocks.slug = 'home'

and blocks.language in ('nl', 'en')

and b1.id is null

单词中的连接可能有点像:为相同的子句和标题寻找更好的翻译.如果语言是首选语言,则由于blocks.language<>而不会匹配. ‘NL’.否则,联接将“搜索”所需的翻译(‘b1.language =’nl’).

在WHERE子句中,如果没有找到更好的转换(b1.id为null),则仅告诉我们返回行.

我能做的最好的将查询转换为雄辩的是:

$prefered = 'nl';

$fallback = 'en';

$blocks = App\Block::where('blocks.slug', '=', 'home')

->whereIn('blocks.

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值