Fetstil Fetstil Kursiv Understrykning linje färgläggning tabellverk Punktlista Nummerlista Vänster Centrerat högerställt Utfyllt Länk Bild htmlmode
  • Forum & Blog
    • Forum - översikt
      • .Net
        • asp.net generellt
        • c#
        • vb.net
        • f#
        • silverlight
        • microsoft surface
        • visual studio .net
      • databaser
        • sql-server
        • databaser
        • access
        • mysql
      • mjukvara klient
        • datorer och komponenter
        • nätverk, lan/wan
        • operativsystem
        • programvaror
        • säkerhet, inställningar
        • windows server
        • allmänt
        • crystal reports
        • exchange/outlook
        • microsoft office
      • mjukvara server
        • active directory
        • biztalk
        • exchange
        • linux
        • sharepoint
        • webbservers
        • sql server
      • appar (win/mobil)
      • programspråk
        • c++
        • delphi
        • java
        • quick basic
        • visual basic
      • scripting
        • asp 3.0
        • flash actionscript
        • html css
        • javascript
        • php
        • regular expresssion
        • xml
      • spel och grafik
        • DirectX
        • Spel och grafik
      • ledning
        • Arkitektur
        • Systemutveckling
        • krav och test
        • projektledning
        • ledningsfrågor
      • vb-sektioner
        • activeX
        • windows api
        • elektronik
        • internet
        • komponenter
        • nätverk
        • operativsystem
      • övriga forum
        • arbete karriär
        • erbjuda uppdrag och tjänster
        • juridiska frågor
        • köp och sälj
        • matematik och fysik
        • intern information
        • skrivklåda
        • webb-operatörer
    • Posta inlägg i forumet
    • Chatta med andra
  • Konto
    • Medlemssida
    • Byta lösenord
    • Bli bonsumedlem
    • iMail
  • Material
    • Tips & tricks
    • Artiklar
    • Programarkiv
  • JOBB
  • Student
    • Studentlicenser
  • KONTAKT
    • Om pellesoft
    • Grundare
    • Kontakta oss
    • Annonsering
    • Partners
    • Felanmälan
  • Logga in

Hem / Forum översikt / inlägg

Posta nytt inlägg


InStr i SQL fråga??

Postades av 2000-11-26 13:07:00 - Pär Hedberg, i forum databaser, Tråden har 13 Kommentarer och lästs av 976 personer

Tjenixen..
Har ett litet "problem"..

Jag har ett fält i en tabell i databasen som heter sokord..
Det är ett kommabaserat fält där man ska skriva in passande sökord till den artikel man är på tex "Erin, Brokovich, Julia".
Och ifrån dessa sökord ska man få fram andra relaterande artiklar typ..

Provade med Like
"Select * From SenasteNytt Where Rubrik Like '%%Erin, Brokovich, Julia%%'"

Men det gav ju bara resultat om Erin fanns med.. Inte om Julia fanns med..

Så det jag skulle behöva är typ InString i SQL frågan. som kollar på hela ord inte på bokstäver.

Man kan ju splitta upp det till en array och loopa frågan så många gånger som det finns sökord.. men det är ju inte så bra prestanda mässigt antar jag..

Svara snarast!!


Svara

Sv: InStr i SQL fråga??

Postades av 2000-11-27 08:34:00 - Christoffer Hedgate

Ett fält i en tabell bör inte innehålla mer än ett värde, och ha mer än en innebörd. Därför bör du flytta dina sökord till en egen tabell med en koppling till huvudtabellen. Sen kan du använda följande fråga för att lösa ditt problem:

SELECT SN.*
FROM SenasteNytt AS SN
INNER JOIN Sokord AS SO
ON SN.Id = SO.SN_Id
WHERE SO.Rubrik IN ('Erin', 'Brokovich', 'Julia')


Svara

Sv: InStr i SQL fråga??

Postades av 2000-11-27 09:43:00 - Pär Hedberg

Njae.. Har gjort såhär förut men då har jag ju loopat.. hmm.. Men det borde ju finnas nåt kommando som är liknande InString, *suck*


Svara

Sv: InStr i SQL fråga??

Postades av 2000-11-27 09:48:00 - Christoffer Hedgate

Ööh? Jo, visst går det att lösa med en loop i ett komma-baserat fält. Men det är inte det bästa sättet att lösa det. Som sagt, ett fält i en databas bör inte (rättare sagt ska inte) innehålla mer än ett värde. Både prestanda- och hanteringsmässigt är det bättre att lägga det i en egen tabell.


Svara

Sv: InStr i SQL fråga??

Postades av 2000-11-27 11:13:00 - Håkan Wennerberg

Håller med Christoffer. Men om du inte vill köra på det kan du använda flera kriterier i din fråga separerade med OR.

WHERE (Rubrik LIKE '%Erin%') OR (Rubrik LIKE '%Brokovich%') osv...


Svara

Sv: InStr i SQL fråga??

Postades av 2000-11-27 11:30:00 - Pär Hedberg

Det har du ju IOFS rätt i.. Att jag inte tänkte på det..

(det gäller ju bara ca 1 till 2 sökord så jag tycker det är onödigt att lägga upp en egen tabell)


Svara

Sv: InStr i SQL fråga??

Postades av 2000-11-27 11:40:00 - Christoffer Hedgate

Tänk på att du då kommer att få dubletter på de som överensstämmer med bägge kriterierna.


Svara

Sv: InStr i SQL fråga??

Postades av 2000-11-27 12:18:00 - Pär Hedberg

Njae.. JAg ska ju ändå kolla så att inte den artikel jag läser kommer med så då kan jag ju lika gärna kolla så att det inte är några dubletter heller...


Svara

Sv: InStr i SQL fråga??

Postades av 2000-11-27 13:09:00 - Christoffer Hedgate

javisst, men du måste som sagt kolla efter dubletter


Svara

Sv: InStr i SQL fråga??

Postades av 2000-11-27 13:35:00 - Håkan Wennerberg

Dubbletter... det har jag inte stött på tidigare. Testade att göra en liknande fråga i Access med flera kriterier där två av dessa matchar en och samma post och fält. Men jag får endast upp den en gång... Eller har jag fattat fel?


Svara

Sv: InStr i SQL fråga??

Postades av 2000-11-27 13:38:00 - Pär Hedberg

Hmm. Det har du ju rätt i ju.. Du är inte dum du.. Det borde ju bli bara en för det.. hmm..


Svara

Sv: InStr i SQL fråga??

Postades av 2000-11-27 14:38:00 - Christoffer Hedgate

nej det är ju nog sant förresten. Det var på ren intuition jag tänkte det, men vid närmare eftertanke gör nog SQL Server så att den stannar efter att det första alternativet stämmer. Men men, fortfarande är det bättre att lägga sökorden i en egen tabell. Nu måste ju dessutom frågan skapas dynamiskt beroende på hur många alternativ man vill kolla med WHERE-klausuler.


Svara

Sv: InStr i SQL fråga??

Postades av 2000-11-27 23:13:00 - Pär Hedberg

Jo men det är ju inte direkt svårt och det tar ju inte alls mycket på prestandan om man gämför med vad jag tänkte göra från början.. *ler*


Svara

Sv: InStr i SQL fråga??

Postades av 2000-11-28 08:23:00 - Christoffer Hedgate

eeh, jo det gör ganska mycket skillnad på prestandan. OK, om man ändå bara hade tänkt skriva en enkel fråga i ett recordset och köra den, kanske inte så mycket skillnad. Men så bör man inte köra sina frågor, antingen ska man köra lagrade procedurer (genom commandobjektet) eller åtminstone köra parameteriserade frågor. Då kommer SQL Server (oftast) att utnyttja samma execution plan som förra gången frågan kördes, vilket gör att det går betydligt fortare.

Iofs vet jag inte om frågan gällde sql server eller access, men jag tycker i vilket fall som helst att databasen bör normaliseras, inte så mycket för prestanda utan framförallt för hanteringsbarhet.


Svara

Nyligen

  • 18:42 Hvor finder man håndlavede lamper
  • 18:41 Hvor finder man håndlavede lamper
  • 16:36 Allt du behöver veta om keramiskt
  • 16:14 Vem anlitar man egentligen när tak
  • 16:14 Vem anlitar man egentligen när tak
  • 16:13 Vem anlitar man egentligen när tak
  • 11:52 Noen erfaring med uttak hos Mostbe
  • 11:51 Noen erfaring med uttak hos Mostbe

Sidor

  • Hem
  • Bli bonusmedlem
  • Läs artiklar
  • Chatta med andra
  • Sök och erbjud jobb
  • Kontakta oss
  • Studentlicenser
  • Skriv en artikel

Statistik

Antal besökare:
Antal medlemmar:
Antal inlägg:
Online:
På chatten:
4 570 613
27 958
271 741
2 483
0

Kontakta oss

Frågor runt konsultation, rådgivning, uppdrag, rekrytering, annonsering och övriga ärenden. Ring: 0730-88 22 24 | pelle@pellesoft.se

© 1986-2013 PelleSoft AB. Last Build 4.1.7169.18070 (2019-08-18 10:02:21) 4.0.30319.42000
  • Om
  • Kontakta
  • Regler
  • Cookies