Tom: MySQL: Datensazu vor und nach Datensatz X ermitteln

Beitrag lesen

Hello,

yo,

rühmst du dich nicht immer, wenigstens zum thema datenbanken hier auch ab und an mal was fachlich sinnvolles beizutragen zu haben ...?

ich denke mal, wir alle haben unsere stärken und schwächen, deine lösung ist meiner meinung nach auch nicht das gelbe vom ei. es zeigst sich doch immer wieder, dass wir alle "nur" menschen sind....

Lock
  SELECT [spalten] FROM tabelle WHERE [match_cat] = $suchbegriff
  SELECT [spalten] FROM tabelle WHERE [match_cat] < $suchbegriff ORDER BY [match_cat_idx] DESC LIMIT 1
  SELECT [spalten] FROM tabelle WHERE [match_cat] > $suchbegriff ORDER BY [match_cat_idx] ASC LIMIT 1
unlock

Das ist zwar nicht ganz billig, aber er wird zwangsweise über die Suchbegriffe einen eigenen Index aufmachen müssen. Ob MySQL allerdings merkt, dass es diesen Index über die drei Spalten auch in der ersten Abfrage benutzen darf, weiß ich noch nicht.

[match_cat] = [spalte1] + [spalte2] + [spalte3]

[match_cat_idx] ist der Index über diese Contatination

Die Bindung durch Lock ist unbedingt erforderlich, solange es kein Common oder Union gibt.

Harzliche Grüße vom Berg
esst mehr http://www.harte-harzer.de

Tom

--
Fortschritt entsteht nur durch die Auseinandersetzung der Kreativen
Nur selber lernen macht schlau