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


Förbigå svenska tecken i sökning?

Postades av 2005-03-30 13:26:57 - Jesper Thörn, i forum sql-server/msde, Tråden har 12 Kommentarer och lästs av 1033 personer

Finns det något smartare sätt i Ms Sql att ignorera svenska tecken i en sökning?
<code>
SELECT * FROM tbl WHERE
replace(replace(replace(city,'ä','a'),'ö','o'),'ä','a') LIKE '%Malmo%'
OR
city LIKE '%Malmo%'
</code>


Svara

Sv: Förbigå svenska tecken i sökning?

Postades av 2005-03-30 13:34:56 - Per Hultqvist

Ett sätt är ju att lägga till ett extra fält som innehåller det sökbara begreppet (Malmo) så slipper man alla Replace(). Det kostar ju lite diskutrymme (databasen växer) och möjligen kan normaliserings-purister invända, men det kanske det är värt för dig?

Jag har sett många göra liknande lösningar när t ex ett kundregister skall sorteras. Vissa företag har ju AB först i namnet ( t ex "AB Cyklar och sånt") och då vill man kanske ändå att detta skall sorteras in under C utan att det för den skull står fel på fakturorna (vilket kan reta kunden). Då är det inte ovanligt att man lägger till ett fält till (SortName) där det står "Cyklar och sånt, AB" i st f "AB Cyklar och sånt".


Svara

Sv:Förbigå svenska tecken i sökning?

Postades av 2005-03-30 13:46:55 - Jesper Thörn

Visst det är ju en variant, problemet är bara att det är städer ifrån hela världen....
Alltså inte bara svenska utan även 10000-tals andra med en massa konstiga tecken.
München, Châlons osv.


Svara

Sv: Förbigå svenska tecken i sökning?

Postades av 2005-03-31 08:43:26 - Mikael Wedham

Kanske kolla på

WHERE kolumn like '%malmo%' COLLATE xxxxxx_CI_AI

Där AI står för accent insensitive - om du väljer rätt collation, så kan du få den att tolka åäö som accenter också.
Jag tror att det (borde) funka med Latin_General...

/micke


Svara

Sv: Förbigå svenska tecken i sökning?

Postades av 2005-03-31 11:12:34 - Per Hultqvist

Hmm...ett annat förslag då. Låt säga att du definierar alla giltiga tecken i en sträng, t ex "ABCDEFGHIJKLMNOPQRSTUVWXYZ" och när du skall söka så ersätter du alla tecken i söksträngen som inte ingår bland de giltiga tecknena med ett ?...Då skulle ju "Malmö" bli "Malm?"

Skulle det sedan dyka upp konstiga specialtecken som du inte förutsett så tar ju denna metod hand om det eftersom du definiera GILTIGA tecken och inte OGILTIGA.

Det kanske inte fungerar heller i ditt specifika fall, men det är i alla fall en idé :-)


Svara

Sv:Förbigå svenska tecken i sökning?

Postades av 2005-03-31 14:51:42 - Jesper Thörn

Tycker att båda varianterna var bra.
Denna funkar ju utmärkt: COLLATE Latin1_General_CI_AI

(Om jag använder LIKE....)


Svara

Sv: Förbigå svenska tecken i sökning?

Postades av 2005-03-31 15:02:19 - Jesper Thörn

Hur får man in COLLATE med en fulltext sökning?
<code>SELECT s.id,s.city,s.province
FROM tbl as s
INNER JOIN countries as c ON s.country=c.id
WHERE CONTAINS(c.*, '"*Malmö*"')
COLLATE Latin1_General_CI_AI</code>....funkar ju inte.


Svara

Sv:Förbigå svenska tecken i sökning?

Postades av 2005-03-31 15:39:16 - Jesper Thörn

Men vad skall "hända" med frågetecknet (?) i sökningen?


Svara

Sv: Förbigå svenska tecken i sökning?

Postades av 2005-03-31 16:28:25 - Jesper Thörn

BTW: Kan man sätta Latin1_General_CI_AI på en kolumn som man sedan indexerar och sedan gör sökningen på?


Svara

Sv:Förbigå svenska tecken i sökning?

Postades av 2005-03-31 17:26:21 - Jesper Thörn

Efter lite tester nu så verkar det inte funkar riktigt som jag vill när jag använder CONTAINS() med fulltextindexering.
Även fast jag sätter Latin1_General_CI_AI på aktuell kolumn och gör en omindexering så får jag samma resultat.
Det verkar ju inte heller gå att skicka in asterixer i detta fall, då spelar det ju ingen roll om jag kör en replace på "förbjudna tecken".

<code>CONTAINS(c.*, '"J*rf*lla"') </code>(Järfälla)
Någon som har ett tips på hur jag kan gå vidare?


Svara

Sv: Förbigå svenska tecken i sökning?

Postades av 2005-04-01 07:59:46 - Mikael Wedham

Nu var det många svar från dig på en gång Jesper...

Funkar det som du vill, eller är det fortfarande något som inte verkar gå?
Du kan ange COLLATE på en kolumn och söka mot den, så du slipper COLLATE i din SELECT.

Är det mer??

/micke


Svara

Sv:Förbigå svenska tecken i sökning?

Postades av 2005-04-01 14:01:12 - Jesper Thörn

Visst, jag kom på att jag kunde sätte egenskapen direkt på kolumnen och skippa den i sql-satsen.
Men problemet är att jag använder CONTAINS, (fulltextindexering) och då verkar det inte spela någon roll hur jag gör.

Tips emottages här.


Svara

Sv: Förbigå svenska tecken i sökning?

Postades av 2005-04-03 08:46:15 - Mikael Wedham

Nä det är klart!

Contains är inte SQL Server. Contains är Index Server = Fulltext index. Det ligger utanför SQL, då är det inte lätt att fixa till det i SQL... Det är kort sagt omöjligt.

/micke


Svara

Nyligen

  • 14:24 CBD regelbundet?
  • 14:23 CBD regelbundet?
  • 14:22 Har du märkt några verkliga fördel
  • 09:09 Vill du köpa medicinska tester?
  • 12:47 Vem beviljar assistansen – kommune
  • 14:17 Någon med erfarenhet av hemstädnin
  • 14:14 Bör man använda sig av en båtförme
  • 14:12 Finns det någon intressant hundblo

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 569 619
27 953
271 709
486
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