Mit einem Stichwort a la google versch. Tabellen ohne join abfragen?
gibt das die Fabrik her?
Hallo Leute,
ich habe eine Frage, ist es möglich mit einem input feld, eine Abfrage über sagen wir mal 8 Tabellen mit jeweils 16 versch. attributen durchzuführen?
Ansonsten hat jemand ein vorschlag wie man sowas lösen kann, ohne dass ich für jede tabelle eine Abfrage machen müsste? (8Stück)
Detail: Ich hab 8 Arten von gebäuden. Alle 8 haben unterschiedliche funktionen und eigenschaften.
Ich brauche eine Suchfunktion die das so einfach wie möglich hinbekommt.
Beispiel: Gebäude 1:Laden Gemüse standtort America mitarbeiter 20
Gebäude 2:Fabrik 100 Paneelen am Tag 30?/Kosten die Woche
usw.
Jedes Gebäude hat ne eigene tabelle wegen den Attributen. Es ist nicht möglich alle in eine Tabelle zu schreiben!Eigentlich schon aber in dieser sache erst mal nicht sinnvoll.
Ich möchte jetzt in ein einziges inputfeld "Fabrik + Paneelen + am Tag %" eingeben.
Bekommt mysql das auf die Reihe?
Hallo Leute,
ich habe eine Frage, ist es möglich mit einem input feld, eine Abfrage über sagen wir mal 8 Tabellen mit jeweils 16 versch. attributen durchzuführen?
Ansonsten hat jemand ein vorschlag wie man sowas lösen kann, ohne dass ich für jede tabelle eine Abfrage machen müsste? (8Stück)
Detail: Ich hab 8 Arten von gebäuden. Alle 8 haben unterschiedliche funktionen und eigenschaften.
Ich brauche eine Suchfunktion die das so einfach wie möglich hinbekommt.
Beispiel: Gebäude 1:Laden Gemüse standtort America mitarbeiter 20
Gebäude 2:Fabrik 100 Paneelen am Tag 30?/Kosten die Woche
usw.
Jedes Gebäude hat ne eigene tabelle wegen den Attributen. Es ist nicht möglich alle in eine Tabelle zu schreiben!Eigentlich schon aber in dieser sache erst mal nicht sinnvoll.
Ich möchte jetzt in ein einziges inputfeld "Fabrik + Paneelen + am Tag %" eingeben.
Bekommt mysql das auf die Reihe?
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 14063
Url: https://administrator.de/contentid/14063
Ausgedruckt am: 15.11.2024 um 11:11 Uhr
3 Kommentare
Neuester Kommentar
hi,
klar mit where, and, like usw. und geht in den meisten Fällen auch ohne Inner-Join, da du im select ja auch Listen oder Platzhalter eingeben kannst.
Deine Tabellenaufteilung ist für diese einfachen Abfragen aber eher ungeeignet (google mal unter Normalisierung).
Hast du dann deine drei oder vier Tabellen (Ort, Haus, Mitarbeiter, Produkt) ist bei einer Abfrage ein sauberes Ergebnis zu erzielen.
noch das Auslesen:
$input = "a1 a2 a3 a4"
$suche = explode (" ", $input);
oder
$input = "a1+a2+a3+a4"
$suche = explode ("+", $input);
und array $suche in die Select-Anweisung einlesen - hier muß dann auch klar sein, was in welcher Tabelle steht, denn sonst kommt es zu ungewollten Mehrfachtreffern und wenn du Pech hast ist die Liste so lang wie du Druckerpapier hast.
lg tinte7
klar mit where, and, like usw. und geht in den meisten Fällen auch ohne Inner-Join, da du im select ja auch Listen oder Platzhalter eingeben kannst.
Deine Tabellenaufteilung ist für diese einfachen Abfragen aber eher ungeeignet (google mal unter Normalisierung).
Hast du dann deine drei oder vier Tabellen (Ort, Haus, Mitarbeiter, Produkt) ist bei einer Abfrage ein sauberes Ergebnis zu erzielen.
noch das Auslesen:
$input = "a1 a2 a3 a4"
$suche = explode (" ", $input);
oder
$input = "a1+a2+a3+a4"
$suche = explode ("+", $input);
und array $suche in die Select-Anweisung einlesen - hier muß dann auch klar sein, was in welcher Tabelle steht, denn sonst kommt es zu ungewollten Mehrfachtreffern und wenn du Pech hast ist die Liste so lang wie du Druckerpapier hast.
lg tinte7
MySQL bietet die Moeglichkeit einer Volltextsuche. Dafuer musst du aber der entsprechenden Spalte diese Eigenschaft geben.
Diese funktion verschnellert bei einer grossen Menge an Datensaetzen. Leider sind spaetere Aenderungen an der Tabelle sehr langsam und man kann nur nach Woertern mit mindestens 4 Zeichen suchen.
Weitere Optionen:
+suchbegriff: Die mit einem Pluszeichen versehenen Suchbegriffe muessen alle vorkommen.
-suchbegriff: Es werden keine Datensaetze ausgegeben wo, die den durch ein Minus gekennzeichneten Suchbegriff enthalten.
~suchbegriff: Dieser Suchbegriff wird ignoriert.
Suchen kannst du dann mit
Oder in deinem Fall: SELECT * FROM tabelle1, tabelle2, tabelle3, etc. WHERE MATCH (tabelle1.spalte, tabelle2.spalte, tabelle3.spalte, etc.) AGAINST (begriff1, begriff2, begriff3, etc.);
Bei dem, was da in der Klammer nach MATCH steht bin ich mir nicht so sicher, ob das geht, aber probiers einfach mal aus.
Markus
ALTER TABLE tabelle ADD FULLTEXT(spalte);
Diese funktion verschnellert bei einer grossen Menge an Datensaetzen. Leider sind spaetere Aenderungen an der Tabelle sehr langsam und man kann nur nach Woertern mit mindestens 4 Zeichen suchen.
Weitere Optionen:
+suchbegriff: Die mit einem Pluszeichen versehenen Suchbegriffe muessen alle vorkommen.
-suchbegriff: Es werden keine Datensaetze ausgegeben wo, die den durch ein Minus gekennzeichneten Suchbegriff enthalten.
suchbegriff, <suchbegriff: Das groesser-Zeichen gibt dem Suchbegriff eine hoehere Prioritaet, das minus-Zeichen umgekehrt. So wird die Sortierreihenfolge der Treffer beeinflusst.
~suchbegriff: Dieser Suchbegriff wird ignoriert.
Suchen kannst du dann mit
SELECT * FROM tabelle WHERE MATCH (spalte) AGAINST (begriff1, -begriff2, +begriff3);
Oder in deinem Fall: SELECT * FROM tabelle1, tabelle2, tabelle3, etc. WHERE MATCH (tabelle1.spalte, tabelle2.spalte, tabelle3.spalte, etc.) AGAINST (begriff1, begriff2, begriff3, etc.);
Bei dem, was da in der Klammer nach MATCH steht bin ich mir nicht so sicher, ob das geht, aber probiers einfach mal aus.
Markus