Jag har en databas med massa ord.Nu vill jag att man skall kunna söka på antal bokstäver som finns i order och mata in massa tecken så skall han kolla efter vilka som kan passa SELECT din_ord_kolumn FROM din_tabell WHERE din_ord_kolumn LIKE '%sökord%' Hejsan.Hitta ord med hjälp av SQL
tex
pelle
pellesoft
kalle
nisse
rut
ruta
Jag mata in att order är på 5 bokstäver och att ordet inehåller bokstäverna epell och då skall jag få upp pelle
Någon bra sql-fårga till detta?Sv: Hitta ord med hjälp av SQL
eller som stored procedure med en inparameter:
CREATE PROCEDURE [dbo].[GetAllMatchingWordsTo]
@SearchString nvarchar(50), --eller det antal tecken som du vill tillåta in.
AS
SELECT din_ord_kolumn FROM din_tabell WHERE din_ord_kolumn LIKE '%@SearchString%'
Ovanstående är T-SQL för MsSQL Server
/EmmaSv: Hitta ord med hjälp av SQL
Jag antar att du vill kolla ifall ordet är ett anagram till något av orden i tabellen.
Ett sätt som du kan lösa problemet på är att lägga till en extrakolumn i tabellen där du skriver in ordet med bokstäverna i ordet sorterade:
<code>
ord | ord_sorted
------------------------
pelle | eellp
pellesoft | eefllopst
kalle | aekll
nisse | einss
rut | rtu
ruta | artu
</code>
Det kan du göra ett litet program som fixar till din befintliga tabell
Sen när du vill testa ett ord (t ex "epell") så sorterar du det först och sedan gör en
SELECT ord FROM ord_tabellen WHERE ord_sorted = "eellp"
vilket då returnerar "pelle"
Man kan också göra en hashning istället för bokstavssortering om man vill.
// MvH Björne