Mysql Eine Abfrage über mehrere Zeilen

Mysql Eine Abfrage über mehrere Zeilen | PSD-Tutorials.de

Erstellt von AxelM, 27.01.2019.

  1. AxelM

    AxelM Nicht mehr ganz neu hier

    Dabei seit:
    22.10.2011
    Beiträge:
    196
    Geschlecht:
    männlich
    Mysql Eine Abfrage über mehrere Zeilen
    Hallo
    ich habe eine Tabelle mit den spalten
    id
    obj_id
    field
    fieldvalue

    Nun würde ich gerne folgende Abfrage erstellen:
    gib mir alle obj_ids für die es folgende einträge gibt:
    field = "Zimmer" && fieldvalue = 4
    field = "PLZ" && fieldvalue = 66666

    ich stehe hier etwas auf dem Schlauch.
     
    #1      
  2. TutKit

    TutKit Vollzugriff

    Vollzugriff auf sämtliche Inhalte für Photoshop, InDesign, Affinity, 3D, Video & Office

    Suchst du einen effektiven Weg, um deine Geschäftsideen aber auch persönlichen Kenntnisse zu fördern? Teste unsere Lösung mit Vollzugriff auf Tutorials und Vorlagen/Erweiterungen, die dich schneller zum Ziel bringen. Klicke jetzt hier und teste uns kostenlos!

  3. owieortho

    owieortho Aktives Mitglied

    Dabei seit:
    25.06.2010
    Beiträge:
    741
    Geschlecht:
    männlich
    Ort:
    9.8241,51.3515
    Software:
    PS CS5, HomeSite
    Kameratyp:
    Casio EX-FH20
    Mysql Eine Abfrage über mehrere Zeilen
    SELECT `obj_id`
    FROM `Deiner_Tabelle`
    WHERE
    (`field` = 'Zimmer' AND `fieldvalue` = 4) OR
    (`field` = 'PLZ' AND `fieldvalue` = 66666)

    Hilft's? Oder verstehe ich etwas falsch?
    O.
     
    #2      
  4. buerzel

    buerzel Versuch macht kluch!

    115
    Dabei seit:
    03.03.2009
    Beiträge:
    10.889
    Geschlecht:
    männlich
    Ort:
    Berlin
    Software:
    Win 10 + Zubehör
    Kameratyp:
    Powershot SX20IS, SX260HS, EOS 700D
    Mysql Eine Abfrage über mehrere Zeilen
    SELECT obj_id FROM Tabelle WHERE (field = "PLZ" AND fieldvalue = "66666") OR (field = "Zimmer" AND fieldvalue = "4")

    Verstehe den Sinn der Abfrage (bzw. der Tabelle) zwar auch nicht, aber eigentlich dürfte fieldvalue kein numerisches Feld sein - oder wird damit gerechnet? :rolleyes:
     
    Zuletzt bearbeitet: 27.01.2019
    #3      
  5. AxelM

    AxelM Nicht mehr ganz neu hier

    Dabei seit:
    22.10.2011
    Beiträge:
    196
    Geschlecht:
    männlich
    Mysql Eine Abfrage über mehrere Zeilen
    Das hilft leider nicht weiter.
    stellt euch vor, in der Datenbank werden daten zu immobilien abgespeichert.
    obj_id = 3 => field = Zimmer => Fieldvalue = 3
    obj_id = 3 => field = Miete => fieldvalue = 400

    was ich hätte jetzt gern die 3, wenn ich sage : gib mir alle obj_ids mit 3 Zimmern und 400€ Miete.
     
    #4      
  6. buerzel

    buerzel Versuch macht kluch!

    115
    Dabei seit:
    03.03.2009
    Beiträge:
    10.889
    Geschlecht:
    männlich
    Ort:
    Berlin
    Software:
    Win 10 + Zubehör
    Kameratyp:
    Powershot SX20IS, SX260HS, EOS 700D
    Mysql Eine Abfrage über mehrere Zeilen
    Ja - dann hast du deine Tabelle völlig falsch aufgebaut. Man kann aus zwei Datensätzen keine Relation herstellen. Entweder enthält ein Datensatz die abgefragten Felder oder es muss anhand einer ID eine zweite Tabelle abgefragt werden.
     
    #5      
  7. AxelM

    AxelM Nicht mehr ganz neu hier

    Dabei seit:
    22.10.2011
    Beiträge:
    196
    Geschlecht:
    männlich
    Mysql Eine Abfrage über mehrere Zeilen
    grmpf.... Das würde dann bedeuten ich müsste das mit php lösen?
     
    #6      
  8. buerzel

    buerzel Versuch macht kluch!

    115
    Dabei seit:
    03.03.2009
    Beiträge:
    10.889
    Geschlecht:
    männlich
    Ort:
    Berlin
    Software:
    Win 10 + Zubehör
    Kameratyp:
    Powershot SX20IS, SX260HS, EOS 700D
    Mysql Eine Abfrage über mehrere Zeilen
    Es geht so nicht zu lösen - auch nicht mit PHP!

    Beschäftige dich lieber mit den SQL- bzw. Datenbankgrundlagen ... :D
     
    #7      
  9. AxelM

    AxelM Nicht mehr ganz neu hier

    Dabei seit:
    22.10.2011
    Beiträge:
    196
    Geschlecht:
    männlich
    Mysql Eine Abfrage über mehrere Zeilen
    Doch mit PHP geht das schon zu lösen ;)

    Finde alle ids wo field = Zimmer && fieldvalue = 3
    foreach ids as id
    prüfe ob es ein Ergebnis gibt für field= miete && fieldvalue = 400 && id = id
    ....

    Aber effizient ist halt anders.
     
    #8      
  10. buerzel

    buerzel Versuch macht kluch!

    115
    Dabei seit:
    03.03.2009
    Beiträge:
    10.889
    Geschlecht:
    männlich
    Ort:
    Berlin
    Software:
    Win 10 + Zubehör
    Kameratyp:
    Powershot SX20IS, SX260HS, EOS 700D
    Mysql Eine Abfrage über mehrere Zeilen
    Nee - LOGISCH ist anders! Davon abgesehen, dass du etwas ganz anderes abfragen willst, als oben angegeben. Wünsch dir noch viel Erfolg mit deiner „Datenbank” ... :ciao:
     
    #9      
  11. AxelM

    AxelM Nicht mehr ganz neu hier

    Dabei seit:
    22.10.2011
    Beiträge:
    196
    Geschlecht:
    männlich
    Mysql Eine Abfrage über mehrere Zeilen
    Tatsächlich stehe ich jetzt echt auf dem Schlauch...
    was habe ich denn deiner Ansicht nach ursprünglich gefragt und was gibt der Programmablauf wieder?
     
    #10      
  12. owieortho

    owieortho Aktives Mitglied

    Dabei seit:
    25.06.2010
    Beiträge:
    741
    Geschlecht:
    männlich
    Ort:
    9.8241,51.3515
    Software:
    PS CS5, HomeSite
    Kameratyp:
    Casio EX-FH20
    Mysql Eine Abfrage über mehrere Zeilen
    Mal unbesehen vom Rest der Datenbank, der vermutlich keine Überführung in eine Normalform (mindestens mal 1., 2. und 3.) widerfahren ist, sollte die Tabelle, die Du uns vorgegeben hast so aufgebaut sein:
    obj_id | zimmer | miete
    1 | 3 | 400

    und damit ist Deine Abfrage lediglich SELECT `obj_id` FROM `Tabelle` WHERE `zimmer`=3 AND `miete`=400

    Glaub mir, etwas in PHP zu erledigen, was Dir die (korrekt modellierte) Datenbank im Handumdrehen ausgibt, ist wie im zweiten Gang in den Urlaub zu fahren.

    O.
     
    #11      
  13. buerzel

    buerzel Versuch macht kluch!

    115
    Dabei seit:
    03.03.2009
    Beiträge:
    10.889
    Geschlecht:
    männlich
    Ort:
    Berlin
    Software:
    Win 10 + Zubehör
    Kameratyp:
    Powershot SX20IS, SX260HS, EOS 700D
    Mysql Eine Abfrage über mehrere Zeilen
    Hatte mir auch schon überlegt, dem TE eine korrekte Datenstruktur im Form einer Beispieltabelle an die Hand zu geben ...
    Aber wie auch immer: Deine Abfragen mit Feldnamen in Accents „gerahmt” dürften auch wenig success generieren. :D
     
    #12      
  14. owieortho

    owieortho Aktives Mitglied

    Dabei seit:
    25.06.2010
    Beiträge:
    741
    Geschlecht:
    männlich
    Ort:
    9.8241,51.3515
    Software:
    PS CS5, HomeSite
    Kameratyp:
    Casio EX-FH20
    Mysql Eine Abfrage über mehrere Zeilen
    Magst Du mich aufklären, wieso dann bei meinen Anwendungsfällen, sowohl in Tools wie phpMyAdmin oder HeidiSQL als auch beim Übergeben der SQL-Statements in einem PHP-Skript, die backticks ja nicht fehlen dürfen?

    Gruß in die alte Heimat (SO36)
    O.
     
    #13      
  15. buerzel

    buerzel Versuch macht kluch!

    115
    Dabei seit:
    03.03.2009
    Beiträge:
    10.889
    Geschlecht:
    männlich
    Ort:
    Berlin
    Software:
    Win 10 + Zubehör
    Kameratyp:
    Powershot SX20IS, SX260HS, EOS 700D
    Mysql Eine Abfrage über mehrere Zeilen
    @owieortho
    Die Frage bezieht sich eindeutig auf MySQL und dem sind solcherlei „backticks” fremd. Selbst im Zusammenspiel mit PHP nicht gebräuchlich. Ansonsten verlink doch du mal Beispiele ...
     
    #14      
  16. owieortho

    owieortho Aktives Mitglied

    Dabei seit:
    25.06.2010
    Beiträge:
    741
    Geschlecht:
    männlich
    Ort:
    9.8241,51.3515
    Software:
    PS CS5, HomeSite
    Kameratyp:
    Casio EX-FH20
  17. AxelM

    AxelM Nicht mehr ganz neu hier

    Dabei seit:
    22.10.2011
    Beiträge:
    196
    Geschlecht:
    männlich
    Mysql Eine Abfrage über mehrere Zeilen
    Das hab ich schon verstanden... ;)
    Nun ist die Datenbank aber halt nun mal bereits existent und nicht ganz klein.
    Und ich hatte die Hoffnung mir den Aufwand sparen zu können, das umzudrehen.
     
    #16      
  18. webcasi

    webcasi Nicht mehr ganz neu hier

    Dabei seit:
    05.09.2018
    Beiträge:
    59
    Mysql Eine Abfrage über mehrere Zeilen
    Hallo,
    ich denke Dir ist schon viel an die Hand gegeben worden, um diese Abfrage zu lösen.
    Allerdings habe ich es so verstanden, dass völlig verschiedene Sachen in den Values der Felder stehen.
    Vielleicht solltest Du die Datenbank erweitern und erst einmal dran arbeiten eine Normalform herzustellen.

    Vielleicht solltest Du zu allererst eine Tabelle erstellen, die die verschiedenen Kategorien (Zimmer usw.)
    Dann hast Du eine ID für die Kategorisierung, außerdem könnte man auch die anderen Werte in separate Tabellen verteilen, die dann jeweils auf ID´s referenzieren. Das macht das Ganze für die Zukunft einfacher und Du machst einen Schritt das Ganze ein wenig zu entwirren.

    Ich habe mir jetzt mal eine Testtabelle geschaffen und denke wenn Du es in Mysql lösen willst, musst Du verschachtelte SQL´s bauen.
    Hier sowas zum Beispiel :
    Code (Text):
    1. select Kombi.ID, testtabelle.ID , testtabelle.fieldvalue, testtabelle.field from
    2. (SELECT testtabelle.ID, testtabelle.field, testtabelle.fieldvalue
    3.   FROM test.testtabelle testtabelle
    4. WHERE (testtabelle.field = 'Zimmer') AND (testtabelle.fieldvalue = 3)
    5. ) Kombi, testtabelle where testtabelle.field = 'Miete' and testtabelle.fieldvalue = 400
     
    #17      
  19. webcasi

    webcasi Nicht mehr ganz neu hier

    Dabei seit:
    05.09.2018
    Beiträge:
    59
    Mysql Eine Abfrage über mehrere Zeilen
    Ist in diesem Thread keiner mehr aktiv? Oder konnten wir helfen?
    Eine Rückmeldung wäre schon sehr nett. Foren sind auch dazu da.
     
    #18      
  20. Curanai

    Curanai Aktives Mitglied

    Dabei seit:
    20.08.2011
    Beiträge:
    462
    Geschlecht:
    männlich
    Ort:
    Oldenburg
    Software:
    Notepad++, Brackets, HeidiSQL, CC, FL Studio, SEO PowerSuite, Rocksmith :D
    Kameratyp:
    Samsung S7 Edge :D
    Mysql Eine Abfrage über mehrere Zeilen
    Backticks erhöhen die Performance des MySQL Interpreters (schnellere Identifikation, ob es Table-/Spaltennamen sind oder reservierte Wörter bzw. Funktionen, Trigger o. ä.). Wer aus seiner Applikation in puncto Speed wirklich das Letzte rauskitzeln will, kommt daran nicht vorbei.
     
    #19      
    owieortho gefällt das.
  21. owieortho

    owieortho Aktives Mitglied

    Dabei seit:
    25.06.2010
    Beiträge:
    741
    Geschlecht:
    männlich
    Ort:
    9.8241,51.3515
    Software:
    PS CS5, HomeSite
    Kameratyp:
    Casio EX-FH20
    Mysql Eine Abfrage über mehrere Zeilen
    Wieder was gelernt. Danke!
     
    #20      
Seobility SEO Tool
x
×
×