[mysql] SELECT Probleme mit "+" und "-"
-
- Posts: 24
- Joined: 2003-07-07 22:02
[mysql] SELECT Probleme mit "+" und "-"
Hi,
kann es sein, dass MySQL bei einer SELECT Abfrage Einträge in einer durchsuchten Tabelle mit + oder - nicht auswählt ?
Meine Anfrage lautet zum Beispiel Hund + Katz, der Eintrag in der Tabelle auch Hund + Katz, trotzdem wird sie nicht angezeigt.
kann es sein, dass MySQL bei einer SELECT Abfrage Einträge in einer durchsuchten Tabelle mit + oder - nicht auswählt ?
Meine Anfrage lautet zum Beispiel Hund + Katz, der Eintrag in der Tabelle auch Hund + Katz, trotzdem wird sie nicht angezeigt.
-
- Posts: 599
- Joined: 2002-08-18 16:41
- Location: Darmstadt
Re: [mysql] SELECT Probleme mit "+" und "-"
deine genaue Query?
-
- Posts: 24
- Joined: 2003-07-07 22:02
Re: [mysql] SELECT Probleme mit "+" und "-"
die anfrage wird dynamisch mit verschiedenen thermen generiert. sie funktioniert meist tadellos, manchmal aber eben nicht.
die selectbegriffe sind zum beispiel in $temp gespeichert.
der query lautet dann:
"SELECT FROM tabelle WHERE Spalte1='%".$temp."%'";
die selectbegriffe sind zum beispiel in $temp gespeichert.
der query lautet dann:
"SELECT FROM tabelle WHERE Spalte1='%".$temp."%'";
-
- Posts: 24
- Joined: 2003-07-07 22:02
Re: [mysql] SELECT Probleme mit "+" und "-"
oh, * vergessen 
-
- Posts: 1031
- Joined: 2002-10-14 22:56
Re: [mysql] SELECT Probleme mit "+" und "-"
1. Unterstützt "=" keine Wildcards, wenn du Wildcards ( % ) benutzen willst, dann musst du "feld1 LIKE '%value1%' benutzen.
2. Mit der Benutzung von LIKE sollte man sehr sehr vorsichtig sein. Wer zB bei Login-Sachen LIKE benutzt, kann gleich einpacken. Außerdem muss man Anfragen feld1 LIKE '%%%' abfangen.
3. Bei der Benutzung von feld1 LIKE '%text%' wird KEIN index benutzt, was das Query sehr langsam machen kann.
4. Einträge "alla" "Hund + Katze" sind nicht sehr sinnvoll und deuten meist auf eine schlechte Datenbankstruktur.
2. Mit der Benutzung von LIKE sollte man sehr sehr vorsichtig sein. Wer zB bei Login-Sachen LIKE benutzt, kann gleich einpacken. Außerdem muss man Anfragen feld1 LIKE '%%%' abfangen.
3. Bei der Benutzung von feld1 LIKE '%text%' wird KEIN index benutzt, was das Query sehr langsam machen kann.
4. Einträge "alla" "Hund + Katze" sind nicht sehr sinnvoll und deuten meist auf eine schlechte Datenbankstruktur.
-
- Userprojekt
- Posts: 729
- Joined: 2002-06-12 10:11
Re: [mysql] SELECT Probleme mit "+" und "-"
Hi,
MySQL unterstützt auch eine Volltextsuche, die seit MySQL 4.0.1 sogar recht gut ist. Im Manual steht mehr darüber...
bye
arty
MySQL unterstützt auch eine Volltextsuche, die seit MySQL 4.0.1 sogar recht gut ist. Im Manual steht mehr darüber...
bye
arty
-
- Posts: 24
- Joined: 2003-07-07 22:02
Re: [mysql] SELECT Probleme mit "+" und "-"
@kase:
1. Du hast Recht, ich habe auch LIKE im query
2. es ist kein Passwort oder irgendwie Schützenswertes; es sind nur Texte, in denen manche Worte vorkommen können.
3. die Geschwindigkeit ist nicht so wichtig, es sind maximal 500 Einträge zu durchsuchen
4. Warum sollte ein Text kein Hund und Katz enthalten; was hat denn das mit der Struktur zu tun ?
Im Ã?brigen hast Du mit keinem Punkt meine Frage beantwortet
@arty:
wie animiere ich MySQL zur Volltextsuche
1. Du hast Recht, ich habe auch LIKE im query
2. es ist kein Passwort oder irgendwie Schützenswertes; es sind nur Texte, in denen manche Worte vorkommen können.
3. die Geschwindigkeit ist nicht so wichtig, es sind maximal 500 Einträge zu durchsuchen
4. Warum sollte ein Text kein Hund und Katz enthalten; was hat denn das mit der Struktur zu tun ?
Im Ã?brigen hast Du mit keinem Punkt meine Frage beantwortet
@arty:
wie animiere ich MySQL zur Volltextsuche
-
- Userprojekt
- Posts: 729
- Joined: 2002-06-12 10:11
Re: [mysql] SELECT Probleme mit "+" und "-"
Lies das MySQL Manual, dort ist das schön beschrieben...Dieguito wrote:wie animiere ich MySQL zur Volltextsuche
bye
arty
-
- Posts: 24
- Joined: 2003-07-07 22:02
Re: [mysql] SELECT Probleme mit "+" und "-"
ok, mach ich. Danke für den hinweis.
Ich hab übrigens mittlerweile festgestellt, dass das '+' Zeichen schon bei der Ã?bergabe an die Webseite verloren geht.
http://server.de/script.php?key=was+weis+ich
kommt an als
http://server.de/script.php?key=was weis ich
Ich hab übrigens mittlerweile festgestellt, dass das '+' Zeichen schon bei der Ã?bergabe an die Webseite verloren geht.
http://server.de/script.php?key=was+weis+ich
kommt an als
http://server.de/script.php?key=was weis ich
-
- Posts: 17
- Joined: 2002-07-12 15:11
Re: [mysql] SELECT Probleme mit "+" und "-"
Moin,
da fallen mir spontan 2 Dinge ein:
1) Variablen RFC-konform in URLs packen, in PHP ginge das z.B. mit urlencode urldecode, schau dir mal das folgende Beispiel bzw. lass es mal laufen an:
Soweit ich weiss, wird das "+"Zeichen in URLs nach RFC1738 zur kodierung von Leerzeichen verwendet, daher muss es in maskiert werden.
2) [Blindschuss] u.U. musst du das "+"-Zeichen in einem String escapen, stichwort mysql_escapestring
da fallen mir spontan 2 Dinge ein:
1) Variablen RFC-konform in URLs packen, in PHP ginge das z.B. mit urlencode urldecode, schau dir mal das folgende Beispiel bzw. lass es mal laufen an:
Code: Select all
<?PHP
$a="was+weiss+ich";
echo "$an";
$b=urlencode($a);
echo "$bn";
echo urldecode($b);
?>
2) [Blindschuss] u.U. musst du das "+"-Zeichen in einem String escapen, stichwort mysql_escapestring
-
- Posts: 24
- Joined: 2003-07-07 22:02
Re: [mysql] SELECT Probleme mit "+" und "-"
das URLencode ist eine Superidee. So werd ich das machen.
Danke
Danke