英文:
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给出的结果如下:
如何按照输入的顺序获取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,
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
通过集体智慧和协作来改善编程学习和解决问题的方式。致力于成为全球开发者共同参与的知识库,让每个人都能够通过互相帮助和分享经验来进步。
评论