我有一个表products
和一个表product-languages
。
products:
prd_id|prd_name
product-languages:
prd_id|language_id|prd_name
1 |1 |Product_German_name
1 |2 |Product_English_name
1 |4 |Product_French_name
我想在 prd_id
上加入产品语言,然后按我的 language_id
优先级列表对其进行排序(例如:2,1,4) - 首先我想要lang_id=2
的结果,如果这不可用,我希望将 lang_id=1
作为第一个结果。
这在 SQL 中可能吗?我认为我的个人订单列表是问题所在,因为我必须检查 lang_id
是否可用......
也许是子查询?
谢谢
最佳答案
您可以通过 case
在标准 SQL 中执行此操作,如下所示:
select
*
from
products p,
product_languages l
where
p.prd_id = l.prd_id
order by
(case language_id
when 2 then 1
when 1 then 2
when 4 then 3
end) asc
关于php - SQL 中按特殊条件排序查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45034425/