phpbar.de logo

Mailinglisten-Archive

[php] Suche in MySql

[php] Suche in MySql

Yannik Hampe yannik at cipher-code.de
Mon Jul 16 11:18:11 CEST 2007



Achim Fink wrote:
> Einen schönen Tag Liste,
> 
>  
> 
> ich stell die Frage mal hier, weil in der DB-Liste nicht mehr viel geht.
> 
>  
> 
> Ich habe in einer Datenbank eine Spalte in der Artikelnummer in folgender
> Form auftreten:
> 
> ACK 128 MSV
> 
> AST M1613 MS
> 
> CK 386 KON MSV

Blöde Datenstruktur ^^.
Also mal im Ernst... Warum die Leerzeichen?
> 
>  
> 
> Also Unterschiedliche Zeichenlänge mit Leerzeichen an unterschiedlichen
> Positionen. Im Moment mache ich eine Abfrage in dieser Form:
> 
> SELECT * FROM artikel WHERE art_nr LIKE „%<suchtext>%“

Das ist so ungefähr die langsamste Abfrage, mit der du MySQL quälen
kannst ^^. Naja... Es geht noch langsamer und so sollte es dann auch
funktionieren:
SELECT * FROM artikel WHERE REPLACE(art_nr,' ','') LIKE „%<suchtext>%“

Aber wenn deine DB was größer werden soll, würde ich mal darüber
nachdenken, wie du ohne ein LIK '%...' auskommst.

> 
> Dabei muss man allerdings wissen wo sich die Leerzeichen befinden. Wenn
> jemand z.B. nach ACK 128 MSV sucht und ACK128MSV eingibt bekommt er keine
> Daten. Ich hab aber schon Abfragen gesehen bei denen es egal ist wie man das
> eingibt. Hab aber nichts dazu gefunden. Vielleicht weis ja jemand etwas
> dazu.
> 
>  
> 
> Gruß Achim
> 
>  
> 

Yannik

php::bar PHP Wiki   -   Listenarchive