Masalah kumpulan oleh dalam Mysql. .
某草草
某草草 2017-05-18 10:52:23
0
9
698

Dalam Mysql, kaedah penulisan berikut dibenarkan. Tetapi adakah ia tegas atau tidak menyokong penulisan seperti ini? Jika anda mempunyai sebarang keraguan tentang cara untuk mengatasi masalah ini, sila bantu saya.

select * from user group by user_name;
某草草
某草草

membalas semua(9)
刘奇

最详细的文档说明在官网找到了。

MySQL 5.7.5 dan ke atas melaksanakan pengesanan pergantungan fungsi. Jika mod SQL ONLY_FULL_GROUP_BY didayakan (iaitu secara lalai), MySQL menolak pertanyaan yang senarai pilih, keadaan HAVING, atau ORDER BY merujuk kepada lajur tanpa agregat yang tidak dinamakan dalam klausa GROUP BY dan tidak bergantung padanya secara fungsional. . (Sebelum 5.7.5, MySQL tidak mengesan kebergantungan fungsi dan ONLY_FULL_GROUP_BY tidak didayakan secara lalai. Untuk penerangan tentang tingkah laku pra-5.7.5, lihat Manual Rujukan MySQL 5.6.)

来源:https://dev.mysql.com/doc/ref...

给我你的怀抱

Medan dalam pilihan perlu dipaksa untuk ditulis dalam kumpulan dengan
pilih nama_pengguna daripada kumpulan pengguna mengikut nama_pengguna;

http://blog.csdn.net/u2830560...

刘奇

Pertama sekali, fahami konsep pengelompokan dan apakah jenis kesan yang boleh dicapai selepas pengelompokan
Pengelompokan adalah untuk analisis statistik berdasarkan atribut kumpulan
Sebagai contoh, dalam jadual pelajar, dikumpulkan mengikut jantina, anda boleh mengira berapa ramai lelaki dan berapa ramai perempuan.
Lajur hasil pertanyaan mesti terdiri daripada fungsi agregat seperti jumlah dan kiraan. Contohnya:
pilih kiraan(*), jantina daripada kumpulan pelajar mengikut jantina;
Jika ia dipilih * daripada kumpulan pengguna mengikut nama_pengguna; apakah jenis keputusan statistik yang anda mahu dapatkan?
mysql5.6 boleh menggunakan kaedah penulisan ini pilih * daripada kumpulan pengguna mengikut nama_pengguna secara lalai, tetapi kenyataan itu sebenarnya ditukar secara dalaman
mysql5.7 dan kemudiannya tidak boleh menggunakan kaedah penulisan ini secara lalai, dan ralat akan dilaporkan.
Jadi sebelum menulis, fikirkan tentang perkara yang perlu saya kira melalui pengumpulan dan gunakan fungsi pengagregatan yang sesuai

Peter_Zhu

Tiga perkara yang perlu diambil perhatian apabila menggunakan GROUP BY dalam pernyataan SQL
1: Alias ​​tidak boleh digunakan;
2: Selain medan fungsi, medan yang muncul dalam pilih mesti muncul dalam kumpulan mengikut, #🎜 🎜#3: Alias ​​tidak boleh menggunakan perkataan terpelihara
Tiga mata ini tidak diperlukan oleh MYSQL!
Mari lihat kenyataan anda sekali lagi Jika jadual pengguna hanya mempunyai satu medan nama_pengguna, maka pernyataan ini tidak mempunyai masalah
Jika jadual pengguna mempunyai lebih daripada satu medan, maka pernyataan ini tidak mempunyai masalah dalam mysql. , tetapi dalam oracle Terdapat masalah dengan sqlserver

刘奇
select * from user group by user_name;
//这么写其实也没问题 但是 实际上 你使用 group by 的时候 你需要用的 就只有 user_name 这个字段吧(通常来说)
//用什么字段就取什么字段就好。不一定要用 ‘*’ 用谁取谁就好
伊谢尔伦

Jika medan nama_pengguna wujud, maka tiada masalah. Kumpulan mengikut ialah pengumpulan mengikut medan Ia biasanya digunakan bersama-sama dengan fungsi agregat seperti anda juga boleh dilaksanakan. Walau bagaimanapun, nama_pengguna biasanya unik, dan tidak masuk akal untuk dikumpulkan mengikut medan unik.

黄舟

Ini ialah sokongan fungsi khas untuk mysql Seperti yang dikatakan oleh @xuexiphpa, ia boleh dimatikan melalui parameter.

Tetapi tidak digalakkan untuk digunakan Selepas kumpulan mengikut, bilangan rekod yang dikembalikan secara teorinya kurang daripada sebelum pengumpulan Secara amnya, beberapa data statistik akan dikembalikan melalui fungsi pengagregatan.
Gunakan pilih * terus tanpa mengesahkan rekod yang dikembalikan.

滿天的星座

Secara amnya, fungsi agregat sering digunakan dalam gabungan

给我你的怀抱

kumpulan mengikut Selepas pengumpulan pengagregatan, sebaiknya simpan elemen dalam klausa pilih sahaja:
1, pemalar
2, nama lajur ditentukan oleh kumpulan oleh
3, fungsi agregat , seperti kiraan(), purata(), jumlah(*), dsb.

Hasil* anda hanya menyenaraikan satu rekod untuk setiap kumpulan, dan anda tidak tahu sama ada ia adalah yang pertama atau nilai rawak

Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan
Tentang kita Penafian Sitemap
Laman web PHP Cina:Latihan PHP dalam talian kebajikan awam,Bantu pelajar PHP berkembang dengan cepat!