SELECT DISTINCT geeft niet alle unieke waarden

Pagina: 1
Acties:

Acties:
  • 0 Henk 'm!

  • roccade
  • Registratie: Januari 2012
  • Laatst online: 07-04 09:21
Onderstaande sql query geeft slechts 61 resultaten;

"SELECT DISTINCT categorie FROM database GROUP BY categorie"

Als ik echter via PHP Myadmin in de database kijk, is ik veel meer categorieën dan de 61 die ik als resultaat krijg.

Ook als ik onderstaande sql query draai zie ik alle categorieën (maar ook dubbelingen);
"SELECT categorie FROM database GROUP BY categorie"

Wat gaat er niet goed?

Acties:
  • 0 Henk 'm!

  • Geerrrt
  • Registratie: Juli 2008
  • Laatst online: 01-10 12:05
Staan er bij sommige categorieën geen spaties oid achter?

Eury#2434


Acties:
  • 0 Henk 'm!

Verwijderd

Dus even voor de duidelijkheid, in het geval je via PHP Myadmin kijkt zie je meer unieke categorieën dan via de DISTINCT in SQL?

In het geval dat er bijvoorbeeld spaties of verborgen characters in je data zitten zou ik juist meer resultaten verwachten in de DISTINCT dan op het oog in PHP Myadmin.

[ Voor 40% gewijzigd door Verwijderd op 25-11-2016 09:14 ]


Acties:
  • 0 Henk 'm!

  • Gomez12
  • Registratie: Maart 2001
  • Laatst online: 17-10-2023
Kijk eens naar je collations... Distinct is enkel distinct binnen je collation. Dus als jij een Case Insensitive Collation gebruikt dan ga je geen hoofdletter verschillen zien met distinct.

Acties:
  • +1 Henk 'm!

  • NMe
  • Registratie: Februari 2004
  • Laatst online: 09-09 13:58

NMe

Quia Ego Sic Dico.

Als je nou eens voorbeelden geeft van wat je wel een niet krijgt in elke omgeving dan hoeven wij geen koffiedik te kijken. ;)

'E's fighting in there!' he stuttered, grabbing the captain's arm.
'All by himself?' said the captain.
'No, with everyone!' shouted Nobby, hopping from one foot to the other.


Acties:
  • 0 Henk 'm!

  • Mercatres
  • Registratie: September 2009
  • Laatst online: 12:25
Zit je op de juiste database?

Acties:
  • 0 Henk 'm!

  • Bastiaan
  • Registratie: November 2002
  • Laatst online: 20:10

Bastiaan

Bas·ti·aan (de, m)

Ik ben driftig even een voorbeeld aan het terugzoeken uit eerdere eigen ervaring, maar krijg het niet teruggevonden. Ik had volgens mij exáct dat probleem ook ooit. Bij mij zat toen de oorzaak in de combinatie van DISTINCT en GROUP BY, waarbij de oplossing was om de GROUP BY te verwijderen. Wellicht een poging waard om te proberen ('t testresultaat blijkt waarschijnlijk sneller dan ik mijn onderbouwingen kan aandragen :P).

Acties:
  • 0 Henk 'm!

  • _reboot_
  • Registratie: December 2004
  • Laatst online: 07-10 11:54
Probeer eens:
SELECT TRIM(categorie) AS cat FROM database GROUP BY cat; #sorteert de output
Of:
SELECT DISTINCT TRIM(categorie) AS cat FROM database; #pakt alleen de unieke waarden

Een GROUP BY doet in principe hetzelfde als DISTINCT. Alleen een GROUP BY sorteert nog op de kolom(men) die je hier specificeert. Het is dus meestal onnodig om beide in een query te gebruiken. Mocht je dus geen sortering nodig hebben dan kun je SELECT DISTINCT hanteren. Mocht je wel willen sorteren dan is de DISTINCT in je query overbodig en kun je simpelweg gaan voor GROUP BY.

Acties:
  • 0 Henk 'm!

  • StevenK
  • Registratie: Februari 2001
  • Laatst online: 21:55
roccade schreef op vrijdag 25 november 2016 @ 08:27:

Ook als ik onderstaande sql query draai zie ik alle categorieën (maar ook dubbelingen);
"SELECT categorie FROM database GROUP BY categorie"

Wat gaat er niet goed?
Dat zijn waarschijnlijk geen dubbelingen maar dat lijkt zo.

Ik vermoed dat het een tekst veld is? Ga duur dubbelingen maar eens bytelevel vergelijken.

Ik zou normaliseren met aparte categorie tabel.

Was advocaat maar vindt het juridische nog steeds leuk


Acties:
  • 0 Henk 'm!

  • roccade
  • Registratie: Januari 2012
  • Laatst online: 07-04 09:21
GeertJam schreef op vrijdag 25 november 2016 @ 08:52:
Staan er bij sommige categorieën geen spaties oid achter?
Nope dat is niet het geval...
Verwijderd schreef op vrijdag 25 november 2016 @ 09:03:
Dus even voor de duidelijkheid, in het geval je via PHP Myadmin kijkt zie je meer unieke categorieën dan via de DISTINCT in SQL?

In het geval dat er bijvoorbeeld spaties of verborgen characters in je data zitten zou ik juist meer resultaten verwachten in de DISTINCT dan op het oog in PHP Myadmin.
Klopt!
Gomez12 schreef op vrijdag 25 november 2016 @ 09:26:


Kijk eens naar je collations... Distinct is enkel distinct binnen je collation. Dus als jij een Case Insensitive Collation gebruikt dan ga je geen hoofdletter verschillen zien met distinct.
Begrijp niet helemaal wat je bedoelt... Kun je dit nader toelichten?
NMe schreef op vrijdag 25 november 2016 @ 09:28:
Als je nou eens voorbeelden geeft van wat je wel een niet krijgt in elke omgeving dan hoeven wij geen koffiedik te kijken. ;)
Komt er zo aan...
Yep!
Bastiaan schreef op zaterdag 26 november 2016 @ 11:16:
Ik ben driftig even een voorbeeld aan het terugzoeken uit eerdere eigen ervaring, maar krijg het niet teruggevonden. Ik had volgens mij exáct dat probleem ook ooit. Bij mij zat toen de oorzaak in de combinatie van DISTINCT en GROUP BY, waarbij de oplossing was om de GROUP BY te verwijderen. Wellicht een poging waard om te proberen ('t testresultaat blijkt waarschijnlijk sneller dan ik mijn onderbouwingen kan aandragen :P).
Maakt geen verschil....
_reboot_ schreef op zaterdag 26 november 2016 @ 11:25:
Probeer eens:
SELECT TRIM(categorie) AS cat FROM database GROUP BY cat; #sorteert de output
Of:
SELECT DISTINCT TRIM(categorie) AS cat FROM database; #pakt alleen de unieke waarden

Een GROUP BY doet in principe hetzelfde als DISTINCT. Alleen een GROUP BY sorteert nog op de kolom(men) die je hier specificeert. Het is dus meestal onnodig om beide in een query te gebruiken. Mocht je dus geen sortering nodig hebben dan kun je SELECT DISTINCT hanteren. Mocht je wel willen sorteren dan is de DISTINCT in je query overbodig en kun je simpelweg gaan voor GROUP BY.
Het rare is dat ik ook hier 61 resultaten krijg....
Zou er ergens een limit van 61 aan hangen????
StevenK schreef op zaterdag 26 november 2016 @ 11:27:
[...]

Dat zijn waarschijnlijk geen dubbelingen maar dat lijkt zo.

Ik vermoed dat het een tekst veld is? Ga duur dubbelingen maar eens bytelevel vergelijken.

Ik zou normaliseren met aparte categorie tabel.
Wat bedoel je precies??

Acties:
  • 0 Henk 'm!

  • roccade
  • Registratie: Januari 2012
  • Laatst online: 07-04 09:21
Dit krijg ik via distinct;
1 empty category :
2 Acana :
3 Conditie - Beweging - Prestatie :
4 Trovet :
5 Vitaminen - Supplementen :
6 Kattenbakken :
7 Pootbescherming :
8 Dieet voeding :
9 Vlooien - Teken :
10 Riemen - Halsbanden - Tuigjes :
11 Verzorging :
12 Accessoires :
13 Benodigdheden :
14 Dekens :
15 Ogen :
16 Standaard snacks :
17 Angst - Gedrag - Stress :
18 Snacks :
19 Huid - Jeuk - Vacht :
20 Veiligheid - Onderweg :
21 Maag - Darmen - Diarree :
22 Huid - Vacht - Manen :
23 Oren :
24 Krabpalen :
25 Medicijnen - Supplementen :
26 Happy Cat :
27 Hill's Prescription Diet :
28 Medische benodigdheden :
29 Bodembedekking :
30 Hygiëne - Omgeving :
31 Maag - Darmen :
32 Kragen :
33 Vet - Concept :
34 Blaas - Nier - Lever - Hart :
35 Darmgezondheid :
36 Kerst :
37 Beschermende shirts :
38 Hulpmiddelen :
39 Jeuk - Schuren :
40 Pijn - Ontsteking :
41 Spieren - Botten - Pezen :
42 Ouderdom - Dementie :
43 Specific :
44 Vruchtbaarheid :
45 Specific dieetvoeding :
46 Eukanuba Veterinary Diets :
47 Konijnen :
48 Virbac VetComplex :
49 Op reis met huisdieren :
50 Forza10 :
51 Hill's VetEssentials :
52 Sanimed Curative :
53 Ouderdom bij katten :
54 IAMS ProActive Health :
55 Eukanuba :
56 Forza10 Onderhoudsvoer :
57 Reptielen & Amfibieën :
58 Gezondheids voeding :
59 HPM Veterinary :
60 Edgard & Cooper :
61 Orijen :

in PHPMyadmin;

Weergave van records 0 - 24 (122 totaal, Query duurde 0.0129 seconden.)
SELECT DISTINCT categorie FROM `wp_carttradetracker_cat`

Acties:
  • 0 Henk 'm!

  • GlowMouse
  • Registratie: November 2002
  • Niet online
Het resultaat dat je van DISTINCT krijgt is erg vreemd. De rijen horen namelijk alfabetisch gesorteerd te zijn. Ik vermoed dat je index corrupt is geraakt. Zou je de tabeldata eens kunnen exporteren, en dan de tabel opnieuw aan kunnen maken?

Acties:
  • 0 Henk 'm!

  • edeboeck
  • Registratie: Maart 2005
  • Laatst online: 11-09 13:47

edeboeck

mie noow noooothing ...

SQL:
1
SELECT DISTINCT categorie FROM database GROUP BY categorie
Is dit je volledige query?
In dat geval snap ik niet waarom je GROUP BY (gemaakt om te groeperen) gebruikt en niet ORDER BY (gemaakt om te sorteren).

Acties:
  • 0 Henk 'm!

  • DJMaze
  • Registratie: Juni 2002
  • Niet online
Maak die tabel eens opnieuw maar dan met utf8mb4_bin

Maak je niet druk, dat doet de compressor maar

Pagina: 1