簡體   English   中英

“在哪里”mysql子句

[英]“ where in ” mysql clause

我使用了一個mysql查詢,其中有“where in in(”22,20,21“)”但當我得到結果時,它的數組按照順序排列,即20,21,20

但我需要的順序與我給出的條款相同

認為你應該能夠像這樣使用FIELD關鍵字:

SELECT * FROM table
WHERE id in (22,20,21)
ORDER BY FIELD(id,22,20,21);

這是特定於mysql的,看起來很神奇,但它確實有效。

除非給出明確的排序,否則SQL結果是無序的; 訂單將不會從in子句中獲取。

既然ID既不是ASC也不是DESC,你必須通過ORDER BY別的東西; 你是如何確定22,20,21訂單的?

如上所述...... WHERE子句對結果集的排序沒有任何作用。 ORDER BY子句中使用MySQL內置FIELD函數來指定應如何排序結果集:

... WHERE id IN (22, 20, 21) ORDER BY FIELD(id, 22, 20, 21) ...

您無法指定將在WHERE子句中返回的訂單結果。 如果要指定順序,則需要在查詢中添加ORDER BY子句。 對於使用FIND_IN_SET的解決方案,請參閱此答案

通常,數據庫系統以任何順序返回結果。 如果您想訂購它,您必須告訴它。 這篇博文提供了一種方法; 您可以在線找到其他解決方案。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM