Top-Themen

AppleEntwicklungHardwareInternetLinuxMicrosoftMultimediaNetzwerkeOff TopicSicherheitSonstige SystemeVirtualisierungWeiterbildungZusammenarbeit

Aktuelle Themen (A bis Z)

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit
GELÖST

PHP - Maximaler wert aus Datenbank auslesen

Frage Entwicklung Datenbanken

Mitglied: samsx87

samsx87 (Level 1) - Jetzt verbinden

05.01.2008, aktualisiert 11:58 Uhr, 9258 Aufrufe, 6 Kommentare

Hallo Zusammen

Habe wieder einmal ein Problem mit mysql & php.
Ich habe eine mysql Datenbank mit verschiedenen spalten (Test, Name, Stadt, Anzahl). Ich möchte nun die Zeile auslesen, bei welcher der Wert in der Spalte "Anzahl" am höchsten ist (z.B 71).

Habe das ganze mit MAX(Anzahl) probiert und das geht nicht, auch das sortieren nach der spalte "Anzahl" und danach die ausgabe der höchste Zahl klappt nicht (bekomme jeweils immer die Zeile mit der "Anzahl" 9).

Kann mir jemand helfen?

Danke!
Mitglied: Biber
05.01.2008 um 02:05 Uhr
Moin samsx87,

das Statement könnte z.B. so aussehen:
01.
Select Test, Name, Stadt, Anzahl From SamsTabelle 
02.
Where Anzahl=Select Max(x.Anzahl) from SamsTabelle x
01.
select * from SamsTabelle order by anzahl desc LIMIT 1
-oder, wenn Du nur den MaxWert selbst brauchst-
01.
select anzahl from SamsTabelle order by anzahl desc LIMIT 1
01.
Select Max(Anzahl) from SamsTabelle
Grüße
Biber
Bitte warten ..
Mitglied: Dani
05.01.2008 um 10:27 Uhr
Moin,
ich möchte noch etwas zu Biber's Statmenet hinzufügen:
Vorraussetzung ist, dass das Attribut (Spalte) Anzahl als Typ ein Zahl hat. Das kann sein int, smallint, double, etc... falls du dort Text stehen hast, kann das nicht gehen!


Grüße
Dani
Bitte warten ..
Mitglied: Biber
05.01.2008 um 11:04 Uhr
Moin Dani,

das würde in der Tat erklären, warum der Datensatz mit der "Anzahl" 9 zurückkommt. *g

Falls also ein ### das Feld "Anzahl" als Varchar oder so etwas angelegt haben sollte, dann muss entsprechend geCASTed werden. Beispiel:
01.
select * from SamsTabelle order by CAST(anzahl AS UNSIGNED) desc LIMIT 1
Aber das wollen wir Samsx87 ja nicht unterstellen....

Ach, eine Anmerkung noch zu meinen beiden Statements aus dem Vor-Kommentar.
Bei der Abfrage über ..MAX().. können natürlich auch mehrere Datensätze im Resultset sein.
Bei "...LIMIT 1" kommt immer nur einer. Beides kann gewollt sein bzw. gebraucht werden --> entsprechend eine Variante wählen.

Grüße
Biber
Bitte warten ..
Mitglied: Dani
05.01.2008 um 11:29 Uhr
Moin Biber,
macht hier ein CASTing schon Sinn? Denn die Anzahl kann eigentlich nur eine Zahl sein, oder? Somit wäre es doch sinnvoller, den Typ der Spalte zu ändern als immer ein SELECT (sieh dein Beispiel) auszuführen...macht das Statment zwar nicht dick, aber die Fehlermöglichkeiten werden verkleinert bzw.
Ich verfolge das Ziel: Das Statment so kurz und einfach wie möglich zu haben aber das Ziel 100%ig zu erreichen. Damit ich auch in 10 Jahren noch weiß, was da passiert.


Grüße
Dani
Bitte warten ..
Mitglied: samsx87
05.01.2008 um 11:52 Uhr
Hallo Zusammen

Habe ich bereits Probiert:
select * from SamsTabelle order by anzahl desc LIMIT 1

ABER ich habe den Fehler gefunden: Das Feld ist als "VARCHAR" definiert *duckundgweg* - Ich bekenne mich also als Schuldig

Kann mir jemand einen Link geben, wo die Unterschiede/Eigenschaften der verschiedenen Typen Beschrieben sind? (Damit so ein Fehler nie wider vor kommt!)

Naja wie auch immer: jetzt Funktionierts . Ich Danke euch 1000 mal für eure schnelle Hilfe, Ihr seit meine Helden :P
Bitte warten ..
Mitglied: Dani
05.01.2008 um 11:58 Uhr
Hi,
na gut...weil heute Wochenende ist und ich gut drauf bin.
Hier findest du alle Datentypen, die es unter MySQL gibt + Erklärung. Suchbegriff war bei Google "mysql typen"


Schönes Wochenende
Dani
Bitte warten ..
Ähnliche Inhalte
Microsoft Office
Excel: maximale Anzahl in Folge stehender Werte ermitteln (1)

Frage von Flexxa zum Thema Microsoft Office ...

PHP
gelöst Externe XML-Datei in PHP auslesen (18)

Frage von Akrosh zum Thema PHP ...

Batch & Shell
gelöst Powershell - Hilfe bei Änderung von Werten in Datenbank (3)

Frage von internet2107 zum Thema Batch & Shell ...

PHP
PHP soll Datensätze in der Datenbank überprüfen (2)

Frage von Yanmai zum Thema PHP ...

Neue Wissensbeiträge
Humor (lol)

Wohnt jemand in Belgien und kann nicht mehr ruhig ausschlafen?

(4)

Information von LordGurke zum Thema Humor (lol) ...

Sicherheits-Tools

Trendmicro OSCE und das Fall Creators Update Win10 RS3

(3)

Information von Henere zum Thema Sicherheits-Tools ...

Microsoft Office

Text in Zahlen umwandeln

Tipp von logische zum Thema Microsoft Office ...

Heiß diskutierte Inhalte
Microsoft Office
ICH BIN AM ENDE MEINES IT-WISSENS ANGELANGT!!!! (38)

Frage von 134537 zum Thema Microsoft Office ...

Windows Server
Gruppenrichtlinie greift nicht zu! (24)

Frage von Syosse zum Thema Windows Server ...

Hosting & Housing
Mailserver Software Empfehlungen (21)

Frage von sunics zum Thema Hosting & Housing ...

Voice over IP
DeutschlandLAN IP Voice Data M Premium, Erfahrung mit Faxgeräte? (16)

Frage von liquidbase zum Thema Voice over IP ...