WinFuture-Forum.de: Hilfe Bei Einer Mysql-abfrage - WinFuture-Forum.de

Zum Inhalt wechseln

Nachrichten zum Thema: Entwicklung
Seite 1 von 1

Hilfe Bei Einer Mysql-abfrage Ich weiß nicht wo der Fehler ist


#1 Mitglied ist offline   Matze 

  • Gruppe: aktive Mitglieder
  • Beiträge: 666
  • Beigetreten: 29. Februar 04
  • Reputation: 0
  • Geschlecht:Männlich

  geschrieben 14. November 2004 - 10:19

Hi,

Ich habe da ein Problem mit einer MYSQL-Abfrage.

Die Abfrage sieht so aus:
SELECT *
FROM startups
WHERE MATCH (
name, command
)
AGAINST (
'%AntiVirus%' '%kav.exe%'
) LIMIT 0 , 30


Die Datenbank liefert folgende Datensätze zurück:
Angehängtes Bild: mysqlproblem.jpg

Warum erscheint der markierte Datensatz nicht an erster Stelle? Match Against geht doch nach Trefferquote vor oder nicht? :)
Lorem ipsum dolor sit amet, consetetur sadipscing elitr.
0

Anzeige



#2 Mitglied ist offline   markus_83_nrw 

  • Gruppe: aktive Mitglieder
  • Beiträge: 615
  • Beigetreten: 21. Juli 04
  • Reputation: 0
  • Geschlecht:Männlich
  • Wohnort:Bonn

geschrieben 14. November 2004 - 18:16

ich bin jetzt kein MySQL benutzer aber ich benutze Oracle.

probiere es mal mit

SELECT *
FROM startups
WHERE MATCH (
name, command
)
AGAINST (
'%AntiVirus%' '%kav.exe%'
) LIMIT 0 , 30
[COLOR=red] sort by 1

oder so änlich

vielleicht funktioniert das.

Gruß Markus
Rechtschreibfehler dienen der Belustigung der Leser :D :D
--------------------
Tower: Chieftec - "Medium Tower" der Dragon Serie Blau
CPU: 3.2 GHz AEP bei IDEL 35°-36° bei VOLLLAST ~ 45° (Windows Vista Index: 4,3)
Speicher: 2 GB MDT RAM (4*512 MB RAM PC3200) (Windows Vista Index: 4,5)
GraKa: GeCube ATI Radeon X1950 Pro @ Standard: 575/1380 (Windows Vista Index: 5,9)
HDDs: 80GB Seagate SATA 7200 Umin + 30GB Maxtor PATA (Windows Vista Index: 4,9)
Mainboard: Gigabyte 4P Titan; Chipsatz 865PE
Sound: Sound Blaster Audigy 2 ZS
OS: Windows Vista Ultimate - vLite Edition :D
Breitband: 3PLAY (ISH) 6000 MBit / pings bei ~40
0

#3 Mitglied ist offline   TO_Webmaster 

  • Gruppe: Moderation
  • Beiträge: 3.225
  • Beigetreten: 27. März 02
  • Reputation: 82
  • Geschlecht:Männlich

geschrieben 14. November 2004 - 19:31

Spontan hätte ich gesagt:

SELECT *
FROM startups
WHERE MATCH (
name, command
)
AGAINST (
'%AntiVirus%' '%kav.exe%'
) ORDER BY id ASC LIMIT 0 , 30

The old reverend Henry Ward Beecher
called a hen the most elegant creature.
The hen pleased for that,
laid an egg in his hat.
And so did the hen reward Beecher.
0

#4 Mitglied ist offline   Matze 

  • Gruppe: aktive Mitglieder
  • Beiträge: 666
  • Beigetreten: 29. Februar 04
  • Reputation: 0
  • Geschlecht:Männlich

geschrieben 14. November 2004 - 20:41

Ich will ja nicht nach id sortieren sondern nach Trefferquote. Deshalb benutze ich auch Match Against. (Damit sollte es laut Doku gehen)
Ich möchte gerne, dass der Datensatz der mit name = AntiVirus und command = kav.exe am meisten übereinstimmt auf Position 1 steht.

Quasi ein ORDER BY trefferquote.
Lorem ipsum dolor sit amet, consetetur sadipscing elitr.
0

#5 Mitglied ist offline   mo 

  • Gruppe: aktive Mitglieder
  • Beiträge: 1.796
  • Beigetreten: 17. Juni 02
  • Reputation: 0
  • Wohnort:Ulm / BaWü

geschrieben 16. November 2004 - 09:16

Zitat

mysql> SELECT id, body, MATCH (title,body) AGAINST
    -> ('Security implications of running MySQL as root') AS score
    -> FROM articles WHERE MATCH (title,body) AGAINST
    -> ('Security implications of running MySQL as root');
+----+-------------------------------------+-----------------+
| id | body                                | score          |
+----+-------------------------------------+-----------------+
|  4 | 1. Never run mysqld as root. 2. ... | 1.5219271183014 |
|  6 | When configured properly, MySQL ... | 1.3114095926285 |
+----+-------------------------------------+-----------------+
2 rows in set (0.00 sec)

ist es denn so schwer, die suchfunktion im mysql handbuch zu verwenden? da steht genau drin was du gesucht hast ...
I'm mó. mo's good twin.
0

#6 Mitglied ist offline   Matze 

  • Gruppe: aktive Mitglieder
  • Beiträge: 666
  • Beigetreten: 29. Februar 04
  • Reputation: 0
  • Geschlecht:Männlich

geschrieben 16. November 2004 - 22:10

Nein es ist nicht schwer. Die Abfrage die du gepostet hast, ist nur die gleiche wie meine.
Deine Abfrage hat nur das score-Level noch dabei aber die Where-Klausel ist trotzdem gleich und somit bleibt auch das Abfrageergebnis gleich.
Lorem ipsum dolor sit amet, consetetur sadipscing elitr.
0

Thema verteilen:


Seite 1 von 1

1 Besucher lesen dieses Thema
Mitglieder: 0, Gäste: 1, unsichtbare Mitglieder: 0