Mr TMedlem sedan maj 20071 061 inlägg Har en tabell vid namn "user" :
user
id
nick_name varchar(30)
first_name varchar(30)
family_name varchar(30)
(Inget konstigt med det)
Nu vill jag göra en sökning i denna där användaren ska kunna välja bort vissa namn med hjälp av att skriva - (minus) framför bortvalda ord är frågan hur SQL frågan blir.
om användaren skriver in "sture -karl" vill jag visa jag inte visa
"sture karlsson" inte heller "karl johansson"
Provade med att skapa frågan :
SELECT * FROM user WHERE ((nick_name LIKE '%sture%' OR first_name LIKE '%sture%' OR family_name LIKE '%sture%') ) AND (nick_name NOT LIKE '%karl%' AND first_name NOT LIKE '%karl%' AND family_name NOT LIKE '%karl%') ) ORDER BY nick_name, family_name, first_name
Funkade bra, men ni kanske har påpekande som jag gärna vill höra.
Jesper TMedlem sedan nov. 20017 144 inlägg Det som är intressant att veta är vilken databas du har, eftersom att ex. mySql har inbyggda funktioner för såndana ändamål.
Mr TMedlem sedan maj 20071 061 inlägg Det är mySQL som körs på hotelet jag ligger på. Dom kör både 4.1.14 och 5.0.22. Ovanstående tabell ligger på ver 4.1.14, men skulle kuinna flyttas om det finns bättre lösningar under ver 5
Jesper TMedlem sedan nov. 20017 144 inlägg Ja du har bara att fulltextindexera dina fält så kan du använda minus direkt i din fråga om du använder "contains".
Mr TMedlem sedan maj 20071 061 inlägg Kan ni ge ett exempel på hur min sql fråga skulle se ut om man använder det ni berättar om ? (låter interesant, men jag är inte säker på att jag helt förstår)
TravoniMedlem sedan okt. 20041 556 inlägg