/ Forside / Teknologi / Udvikling / SQL / Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
SQL
#NavnPoint
pmbruun 1704
niller 962
fehaar 730
Interkril.. 701
ellebye 510
pawel 510
rpje 405
pete 350
gibson 320
10  smorch 260
Søgning i MySQL uden mellemrum
Fra : Thïngmand


Dato : 24-11-00 10:06

Jeg har en database hvor jeg skal søge efter varenumre - et varenummer kunne
se således ud:

123 456 7890

Problemet er at der hersker stor tvivl hos vores brugere, om hvor
mellemrummene skal være henne. I vores gamle flat-file system fjernede jeg
mellemrummene i søgeordet, hentede en linie fra filen og fjernede
mellemrumene fra denne og samlignede disse - men hvordan får jeg den samme
funktion med PHP og MySQL?



 
 
N/A (24-11-2000)
Kommentar
Fra : N/A


Dato : 24-11-00 16:08



Andreas Svendsen (24-11-2000)
Kommentar
Fra : Andreas Svendsen


Dato : 24-11-00 16:08

Johan <webmaster@ru94.dk> skrev i en
news:knqT5.7409$zs.232779@twister.sunsite.auc.dk...
>
> $newvarenr = ereg_replace(" ", "", $indtastetvarenr);

str_replace() er at fortrække her, af performancemæssige grunde.

http://php.net/str_replace
--
mvh
Andreas Kleist Svendsen
andreas_k_s(at)hotmail.com
http://www.whitehat.dk/nautilus/




Johan (24-11-2000)
Kommentar
Fra : Johan


Dato : 24-11-00 16:14

> > $newvarenr = ereg_replace(" ", "", $indtastetvarenr);
>
> str_replace() er at fortrække her, af performancemæssige grunde.

Det betyder nu minimal meget i denne sammenhæng. Tror ikke det vil være den
store forskel, når det drejer sig om en streng på mindre end 15 tegn. Så
tror det er en form for flueknepperi Men right, du har ret. Men som sagt
begge kan bruges, og der er så godt som at sige ingen forskel i dette
tilfælde...

mvh

Johan



N/A (25-11-2000)
Kommentar
Fra : N/A


Dato : 25-11-00 17:10



Jonathan Stein (25-11-2000)
Kommentar
Fra : Jonathan Stein


Dato : 25-11-00 17:10

"Thïngmand" wrote:

> > Kan det bruges?!
>
> Nej desværre. Der er forskellige slags varenumre i databasen. Det jeg ledte
> efter var en mulighed for at få MySQL til at ignorere mellemrummene i en
> søgning...

Selv om du skulle få MySQL overtalt til at lave søgningen, vil den være
langsom, og det vil være svært/umuligt at lave fornuftige index'er. Et
alternativ kunne være at vedligeholde et ekstra felt med varenummeret renset
for mellemrum.

M.v.h.

Jonathan






Mads Lie Jensen (25-11-2000)
Kommentar
Fra : Mads Lie Jensen


Dato : 25-11-00 17:28

On Sat, 25 Nov 2000 16:37:25 +0100, "Thïngmand" <michael@thingmand.dk>
wrote:

>> Kan det bruges?!
>
>Nej desværre. Der er forskellige slags varenumre i databasen. Det jeg ledte
>efter var en mulighed for at få MySQL til at ignorere mellemrummene i en
>søgning...

mySQL har en REPLACE()-funktion, mon ikke den kan bruges?

SELECT * FROM varer WHERE REPLACE(varenummer, ' ', '') =
REPLACE(varenummer_der_søges_efter, ' ', '');


--
Mads Lie Jensen
Mads@gartneriet.dk
ICQ #25478403
http://www.gartneriet.dk

Thïngmand (25-11-2000)
Kommentar
Fra : Thïngmand


Dato : 25-11-00 18:29

> mySQL har en REPLACE()-funktion, mon ikke den kan bruges?
>
> SELECT * FROM varer WHERE REPLACE(varenummer, ' ', '') =
> REPLACE(varenummer_der_søges_efter, ' ', '');

DET VIRKER!!!

Jeg har kørt et pat test og det ser ud til at virke - en million gange tak!

Det var lige præcis sådan en funktion jeg ledte efter - jeg har ledt
dokumention igennem på kryds og tværs uden at finde noget brugbart.

Også tak til Jonathan for den alternative løsning (meget logisk løsning -
den havde dog slet ikke strejfet min hoved!)



Thomas L. Kjeldsen (28-11-2000)
Kommentar
Fra : Thomas L. Kjeldsen


Dato : 28-11-00 05:53

On Fri, 24 Nov 2000 10:06:12 +0100, "Thïngmand" <michael@thingmand.dk>
wrote:

>mellemrummene skal være henne. I vores gamle flat-file system fjernede jeg
>mellemrummene i søgeordet, hentede en linie fra filen og fjernede
>mellemrumene fra denne og samlignede disse - men hvordan får jeg den samme
>funktion med PHP og MySQL?

Er det en umulighed at fjerne mellemrummene i databasen?

--
Med venlig hilsen Thomas L. Kjeldsen
http://netlunden.dk/thomas/

N/A (02-12-2000)
Kommentar
Fra : N/A


Dato : 02-12-00 02:14



Nis Jørgensen (02-12-2000)
Kommentar
Fra : Nis Jørgensen


Dato : 02-12-00 02:14

On Tue, 28 Nov 2000 09:47:44 +0100, "Thïngmand" <michael@thingmand.dk> wrote:

>> Er det en umulighed at fjerne mellemrummene i databasen?
>
>Næ, men de skal jo stadig vises korrekt (med mellemrum) når de bliver
>listet, så man skulle have 2 varenr. felter - et med mellemrum og et uden
>(som Jonathan foreslog).

Hvad med at formattere dem når de skal vises? Med mindre mellemrummene er
placeret forskelligt i forskellige poster, synes jeg det lyder som den nemmeste
løsning - så undgår man redundante data.

FUT: dk.edb.database (hvor jeg synes debatten er mest relevant)

--
Med venlige hilsner

Nis Jørgensen, Albertslund

Actual code behavior may differ from intended.

Thïngmand (04-12-2000)
Kommentar
Fra : Thïngmand


Dato : 04-12-00 09:35

> Hvad med at formattere dem når de skal vises? Med mindre mellemrummene er
> placeret forskelligt i forskellige poster, synes jeg det lyder som den
nemmeste
> løsning - så undgår man redundante data.

Det er blevet foreslået, men der som sagt tale om forskellige slags
varenumre

> FUT: dk.edb.database (hvor jeg synes debatten er mest relevant)

Er krydsposted i dk.edb.database og serveside, da jeg ikke var sikker på om
der skulle en databaseløsnig eller en PHP løsning til...



Søg
Reklame
Statistik
Spørgsmål : 177558
Tips : 31968
Nyheder : 719565
Indlæg : 6408929
Brugere : 218888

Månedens bedste
Årets bedste
Sidste års bedste