SQL连接和带有ON(特定项目)的WHERE,以按顺序获取结果。

huangapple go评论69阅读模式
英文:

SQL join and where with ON (specific items) to get results in order

问题

SELECT语句中的样本代码如下:

SELECT b.title, i.barcode
 FROM biblio b
 JOIN items i 
 	ON b.biblionumber= i.biblionumber
 JOIN biblioitems bi 
 	ON i.biblionumber=bi.biblionumber
 WHERE i.barcode IN (4088,6183,6191)

以上SQL给出的结果如下:

SQL连接和带有ON(特定项目)的WHERE,以按顺序获取结果。

如何按照输入的顺序获取IN (4088,6183,6191)中的结果。

英文:

sample code

SELECT b.title, i.barcode
 FROM biblio b
 JOIN items i 
	ON b.biblionumber= i.biblionumber
 Join biblioitems bi 
	ON i.biblionumber=bi.biblionumber
 where i.barcode IN (4088,6183,6191)

above SQL given results as below,

SQL连接和带有ON(特定项目)的WHERE,以按顺序获取结果。

how do I get results in IN (4088,6183,6191) as entered order

答案1

得分: 2

你可以尝试以下修改后的查询。

SELECT b.title, i.barcode
FROM biblio b
JOIN items i ON b.biblionumber = i.biblionumber
JOIN biblioitems bi ON i.biblionumber = bi.biblionumber
WHERE i.barcode IN (4088, 6183, 6191)
ORDER BY FIELD(i.barcode, 4088, 6183, 6191);
希望这有所帮助!
英文:

You can try below modified Query.

SELECT b.title, i.barcode
FROM biblio b
JOIN items i ON b.biblionumber = i.biblionumber
JOIN biblioitems bi ON i.biblionumber = bi.biblionumber
WHERE i.barcode IN (4088, 6183, 6191)
ORDER BY FIELD(i.barcode, 4088, 6183, 6191);

Hope this helps!!

答案2

得分: 0

你可以使用带有 CASE 语句的 ORDER BY

<您的查询>
按照 CASE i.barcode 
          当 4088 时 1
          当 6183 时 2
          当 6191 时 3 
      结束排序。
英文:

You can use the ORDER BY with CASE statement :

<You query>
order by case i.barcode 
          when 4088 then 1
          when 6183 then 2
          when 6191 then 3 
      end

huangapple
  • 本文由 发表于 2023年6月22日 18:33:44
  • 转载请务必保留本文链接:https://go.coder-hub.com/76531001.html
匿名

发表评论

匿名网友

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen:

确定