/ 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
SQL til søgefunktion, hvordan skrives det?
Fra : Jakob Munck


Dato : 08-12-05 16:20

Jeg er ved at lave en lille søgemaskine, og til det skal jeg bruge en
SQL-streng, som søger efter et ord i tre kolonner i en tabel. Jeg har
forsøgt mig med noget SQL, men det virker ikke rigtigt:

<?
.....
$query = mysql_query ("SELECT * FROM tbmembers WHERE user_name OR country OR
city LIKE '%$soeg%'") or die(mysql_error());
.....
?>

Ovennævnte sætning giver ingen fejlmelding, men heller ikke de rigtige svar.
Jeg skal søge i kolonnerne "user_name", "country" og "city", men hvordan
skal sætningen skrives?


v.h.
Jakob



 
 
Peter Lykkegaard (08-12-2005)
Kommentar
Fra : Peter Lykkegaard


Dato : 08-12-05 16:34

Jakob Munck wrote:
>
> $query = mysql_query ("SELECT * FROM tbmembers WHERE user_name OR country OR
> city LIKE '%$soeg%'") or die(mysql_error());
>
> Ovennævnte sætning giver ingen fejlmelding, men heller ikke de rigtige svar.
> Jeg skal søge i kolonnerne "user_name", "country" og "city", men hvordan
> skal sætningen skrives?
>
Noget ala

SELECT * FROM tbmembers WHERE
user_name LIKE '%$soeg%' OR
country LIKE '%$soeg%' OR
city LIKE '%$soeg%'

- Peter


Jakob Munck (08-12-2005)
Kommentar
Fra : Jakob Munck


Dato : 08-12-05 23:14


SELECT * FROM tbmembers WHERE
user_name LIKE '%$soeg%' OR
country LIKE '%$soeg%' OR
city LIKE '%$soeg%'

---------------------

Lige præcis. Mange tak!

v.h.
Jakob



Ukendt (10-12-2005)
Kommentar
Fra : Ukendt


Dato : 10-12-05 10:59

> Jeg er ved at lave en lille søgemaskine, og til det skal jeg bruge en
> SQL-streng, som søger efter et ord i tre kolonner i en tabel. Jeg har
> forsøgt mig med noget SQL, men det virker ikke rigtigt:

Svaret har du fået i en anden streng. Jeg ville blot anbefale, at du laver
nogle indeks på de kolonner, du søger på. Det vil forbedre hastigheden
betragteligt.

- Daniel



Martin Christensen (11-12-2005)
Kommentar
Fra : Martin Christensen


Dato : 11-12-05 00:10

-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

"news.cybercity.dk" <Daniel Overby> writes:

> Jeg ville blot anbefale, at du laver nogle indeks på de kolonner, du
> søger på. Det vil forbedre hastigheden betragteligt.

Og dog. Normale indekser på tekstkolonner er som regel noget for sig:
de forbedrer hastigheden, når man søger på begyndelsen af værdierne i
kolonnen (WHERE foo LIKE 'bar%'), men indekset kan ikke bruges, hvis
man vil søge inde midt i tekstfeltet (WHERE foo LIKE '%bar%').

Hvis man vil søge effektivt i større mængder tekst på denne måde, bør
man nok benytte et fuldtekstindeks, og de er som regel lidt mere
omstændige at bruge end normale indekser, som DBMS'en jo selv finder
ud af at benytte, når det er relevant. Så må man jo afgøre med sig
selv, om det ekstra performance, man får ud af et fuldtekstindeks er
besværet værd til det, man skal bruge det til.

Martin
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.1 (GNU/Linux)
Comment: Using Mailcrypt+GnuPG <http://www.gnupg.org>

iEYEARECAAYFAkObYDEACgkQYu1fMmOQldUbXACfVdCU97jtGiNVFElgAfVMLuPG
QScAoMtUpOTYn6yp7B8PYhtHpwGhzrvt
=+zTy
-----END PGP SIGNATURE-----

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

Månedens bedste
Årets bedste
Sidste års bedste