Bir alan 'noticeBy' enum ('email', 'mobile', 'all', 'auto', 'nothing') NOT NULL DEFAULT 'auto'. ENUM tarafından sipariş edildiği bilinen alan, dizinine göre çalışır. Ancak, değerleri ile nasıl sipariş verilebilir?ORDER BY "ENUM alanı" içinde MYSQL
cevap
Sorting altında belgelendiği gibi:
, bu nedenle sıralama sütun üzerinde bir dizeye cast olmuştur edebilirsiniz sonra:beklenmeyen sonuçlar önlemek için şu tekniklerden birini kullanın:
ENUM
değerleri numaralandırma üyeleri kolon tarifnamede listelenen sırayla bağlıdır indeks numarası, göre sıralanır. Örneğin,'b'
, için'a'
'dan önce sıralar. Boş dize, kullanılmayan dizelerden önce sıralar ve diğer tüm numaralandırma değerlerinden önceNULL
değerleri sıralar. BirENUM
sütun üzerindeORDER BY
maddesini kullanırken
alfabetik sırayla
ENUM
listesi belirtin. SütunORDER BY CAST(col AS CHAR)
veyaORDER BY CONCAT(col)
kodlayarak dizin numarasına değil, sözcüklere göre sıralanmış olduğundan emin olun. İkinci mermi Başına
ORDER BY CAST(noticeBy AS CHAR)
Sen sipariş tanımlayabilirsiniz ancak istediğiniz: Tüm, oto, hiçbir şey e-posta, mobil:
ORDER BY CASE noticeBy
WHEN 'email' THEN 1
WHEN 'mobile' THEN 2
WHEN 'all' THEN 3
WHEN 'auto' THEN 4
ELSE 5
END
Bu aşağıdaki sırayla satırları dönecektir.
Bu aynı zamanda çalışır:
ORDER BY FIELD(noticeBy, 'all','auto','email','mobile','nothing')
(Ben bunu başarmak için bir ayarı vardır inanmıyorum, sıralama-değerlerini sağlamak zorunda.)
Bu şekilde ENUM sıralama, bazı durumlarda çok yararlı olabilir! Gerçekten işe yarıyor, denedim :) –
tam olarak ne aradığımı – Andrew
- 1. mysql db içinde Boolean Alanı
- 2. MySQL SİPARİŞ BY IN()
- 3. Enum, benim MySQL veritabanında
- 4. MySQL: ORDER BY arama
- 5. MySQL SUM, GROUP BY
- 6. MySQL: FIYAT/GRUP BY
- 7. MySQL SİPARİŞ BY COUNT()?
- 8. C# Başvurulan Ad Alanı Gizli By Sınıf Ad Alanı
- 9. Birden çok alanı MySQL içinde sıralama
- 10. Hazırlanmış deyimde mysql enum için Java enum
- 11. GROUP BY MATLAB içinde
- 12. MySQL Enum doğru kullanımı?
- 13. MySQL order by mongodb findOne()
- 14. MySQL Query order by null
- 15. MySQL değişken depolama alanı
- 16. Enum içinde Kalıtım
- 17. JPA içinde GROUP BY kullanarak
- 18. Sonata admin - ilgili tablodaki "order by" alanı
- 19. MySQL SİPARİŞ BY rasgele alan ek işlemle çalışmaz
- 20. RSA ortak anahtarını RSA DER
- 21. MySQL GROUP SQL Server'da hata BY tarafından
- 22. LoopBack mySQL ile "grup by" yeteneği?
- 23. MySQL COUNT(), SUM() ve GROUP BY
- 24. mysql "group by" çok yavaş bir sorgu
- 25. MySQL Group by ID ve Son Tarihler
- 26. Enum collection_radio_buttons içinde nasıl kullanılır
- 27. Birden çok alanı karşılaştırmak için MySQL içinde MyLQL'de OR Kullanılıyor
- 28. ASN.1 DER biçimlendirilmiş özel anahtar
- 29. yapıştır, by ve data.table içinde r
- 30. Açılır menüdeki enum değerleri php mysql
Bu seferki çok SQLite'ta çalışacaktır. – nuqqsa