Zum Inhalt springen
View in the app

A better way to browse. Learn more.

Fachinformatiker.de

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

Erweitere Suchfunktion in SQL

Empfohlene Antworten

Veröffentlicht

Hey,

ich hab momentan ein etwas kniffliges Problem. Und zwar hab ich eine Suchfunktion programmiert, die ganz simple eine Datenbank nach allen möglichen Treffern durchsucht. Etwa so was:

$sql = "SELECT * FROM table WHERE (name LIKE '%KEY%') or (city LIKE '%KEY')";

Naja wie auch immer. Gehen wir davon aus das ich in meiner Tabelle 5 Datensätze hab, etwa so:

Name City

chris | Berlin

tobi | Berlin

andi | Karlsruhe

stefi | Berliner

caty | Broberlin

Eine Suche nach "berlin" würde mir demnach 4 Treffer bringen. Nun möcht ich, das in der Ausgabe immer, der Datensatz, wo der Suchbegriff mit beginnt, immer zu erst kommt und dann die anderen Datensätzen, bei denen der Suchbegriff im Text steht.

Also das die Ausgabe der Ergebnisse immer so aussieht:

Chris | Berlin

Tobi | Berlin

Stefi | Berliner

....

Caty | Broberlin

Hinweis: Die eigentliche DB umfasst mehrere Zigtausend Datensätze und hat deutlich komplexere Relationen als meine 2 Spalten hier ^^

Ich hoffe ich konnte mein Problem gut erklären und danke schon jetzt für eure Ideen.

mit freundlichen grüßen

Vielen Dank schon mal für die Antwort, für mein gepostetes Beispiel funktioniert das wohl sicher. Alle Berlin Einträge würden dann oben stehen, aller dings würde dann ein Oberlin auch vor einem Berlinale stehen...

Ich hab jetzt eine Lösung gefunden, nicht sehr elegant aber es funktioniert wohl. Zunächst eine Abfrage die alle Datensätze erfasst die genau mit dem Such wort anfangen

$sql = "SELECT * FROM table WHERE city LIKE 'KEY%'";

und anschließend eine abfrage die alles außer das obere nimmt

$sql = "SELECT * FROM table WHERE city LIKE '%KEY%' AND city NOT LIKE 'KEY%'

Dann merge ich die die Array und gut... Naja für de Anfang ist es erst mal eine Lösung aber naja. Noch jmd andere Ideen?!

Ich würde es im code sortieren.

Mhh also mir jetzt nen eigens für dieses Problem nen Sortieralghoritmus zu schreiben ?! Bisschen viel overhead, findest du nicht :P

Ich kann mir net vorstellen, das ich der einzigste mit diesem Problem bin ^^

Archiv

Dieses Thema wurde archiviert und kann nicht mehr beantwortet werden.

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.