AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken Delphi MySQL: Anzahl verschiedener Werte in einer Spalte
Thema durchsuchen
Ansicht
Themen-Optionen

MySQL: Anzahl verschiedener Werte in einer Spalte

Ein Thema von Chewie · begonnen am 6. Mai 2003 · letzter Beitrag vom 6. Mai 2003
Antwort Antwort
Chewie

Registriert seit: 10. Jun 2002
Ort: Deidesheim
2.886 Beiträge
 
Turbo Delphi für Win32
 
#1

MySQL: Anzahl verschiedener Werte in einer Spalte

  Alt 6. Mai 2003, 11:39
Ich zerbreche mir gerade den Kopf darüber, wie ich am effizientesten Folgendes tun kann:
Ich hab eine MySQL-Tabelle, in der ich eine Spalte parameter2 (INT) habe und zwei VARCHAR-Spalten. Nun suche ich die Anzahl der verschiedenen Werte in der Spalte parameter2. In dieser Spalte kann der gleiche Wert beliebig oft vorkommen, also ist die Zeilenanzahl nicht gleich der Anzahl verschiedener Werte. Eine Einschränkung ist noch, dass eine Reihe übberhaupt nur berücksichtigt werden darf, wenn sich in den beiden VARCHARS ganz bestimmte Strings befinden.
Hat da jemand eine Idee, wie man das mit MySQL-Bordmitteln lösen kann, ohne clientseitig die Anzahl zu ermitteln?

Ach ja, ich benutze die Win-Version von MySQL 3.23.54
Martin Leim
Egal wie dumm man selbst ist, es gibt immer andere, die noch dümmer sind
  Mit Zitat antworten Zitat
Benutzerbild von MrSpock
MrSpock
(Co-Admin)

Registriert seit: 7. Jun 2002
Ort: Owingen
5.865 Beiträge
 
Delphi 2010 Professional
 
#2
  Alt 6. Mai 2003, 12:15
Hallo Chewie,

das müsste gehen über:

SELECT COUNT(parameter2) WHERE parameter2 IN (SELECT DISTINCT parameter2 FROM mytable) falls MySQL das unterstützt.
Albert
Live long and prosper


MrSpock
  Mit Zitat antworten Zitat
Chewie

Registriert seit: 10. Jun 2002
Ort: Deidesheim
2.886 Beiträge
 
Turbo Delphi für Win32
 
#3
  Alt 6. Mai 2003, 12:41
DISTINCT ist bekannt, aber es gibt Probleme mit dem IN-Operator. Jedenfalls liefert diese Abfrage einen Fehler.
Allerdings bringt mich das DISTINCT weiter, denn ich gehe jetzt folgendermaßen vor:
Mit
SELECT DISTINCT parameter2 FROM mytable hole ich mir alle Werte der Spalte genau einmal, und dann ist ja die Anzahl der Zeilen gleich der Anzahl der verschiedenen Werte.
Martin Leim
Egal wie dumm man selbst ist, es gibt immer andere, die noch dümmer sind
  Mit Zitat antworten Zitat
mjenke

Registriert seit: 28. Mär 2003
Ort: Bonn
131 Beiträge
 
#4
  Alt 6. Mai 2003, 14:15
Hallo, Chewie

Du könntest folgende Query ausprobieren

Code:
SELECT COUNT(DISTINCT Parameter2) FROM tabelle WHERE Spalte1 = "abraham" AND Spalte2="abraham"
Habe es auf einer Paradox-Tabelle mit dem SQL-Editor im BDE-Datenbankexplorer ausprobiert. Dort hat es funktioniert.


Matthias
Matthias Jenke
  Mit Zitat antworten Zitat
Chewie

Registriert seit: 10. Jun 2002
Ort: Deidesheim
2.886 Beiträge
 
Turbo Delphi für Win32
 
#5
  Alt 6. Mai 2003, 14:33
Sehr gut, danke. So ähnlich hat ich es schon, aber auf die Idee, das distinct in die Klammer zu setzen, bin ich nicht gekommen
Martin Leim
Egal wie dumm man selbst ist, es gibt immer andere, die noch dümmer sind
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 17:19 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz