Jag vill göra en sökning som fungerar som en enkel sökmotor. Man ska kunna skriva flera ord separerade utav mellanslag och sidan ska hitta alla fält i en kolumn i databasen som innehåller något av orden och helst sortera så att de bästa träffarna kommer först. Går det att göra på något enkelt sätt? Jag trodde det skulle finnas något enkelt wildcard man kunde ersätta mellanslag med som typ % men efter flitigt letande verkar det som att det inte finns någon inbyggd funktion för detta i mysql?
Söka i mysql
4 svar · 417 visningar · startad av M@rtin
Kan du inte bara bygga upp din SQL-sträng från sökorden de ha skrivit in?
/// <summary>
/// Returns a SQL string
/// </summary>
/// <param name="s"></param>
/// <returns>SQL String</returns>
private DataTable sheit(string s)
{
//string temp = //replace duplicate spaces with one using regex-es, orkar inte
string[] strSearch = s.Split(" ");
StringBuilder sb = new StringBuilder("SELECT rubrik, brodtext FROM minTabell WHERE");
int i = 0;
foreach(string str in strSearch)
{
//warning - SQL injections!
//check for first loop
sb.Append((i!=0 ? " OR" : " ") + "brodtext LIKE '%" + str + "%' OR rubrik LIKE '%" + str + "%')");
i++;
}
DataTable dt = objDAL.Search(sb.ToString()); //returns DataTable
return dt;
}
Hehe, där vad jag lite sen ;). Hann visst posta innan mig.
Aha MATCH var en bra funktion. Tack för hjälpen!