EnjoyNews wrote:
> "Martin Mouritzen" <martin@siteloom.dk> skrev i en meddelelse
> news:5kn363t2g3nta9a6u2ivrlpu7nop2dkiho@4ax.com...
>> On Sat, 2 Jun 2007 20:26:36 +0200, "EnjoyNews" <mh-nyheder@mail.dk>
>> wrote:
>>
>>> Hvordan finder jeg de sidste 3 tegn i et varchar felt i en mysql database.
>>> ?
>> Du skal bruge SUBSTRING funktionen.
>>
>>> Jeg skal bede den om at finde alle de poster hvor et varchar felt ikke
>>> ender
>>> på .dk
>> SELECT
>> felter
>> FROM
>> tabel
>> WHERE
>> SUBSTRING(feltnavn,-3) != '.dk'
>> --
>> Med venlig hilsen,
>> Martin Mouritzen.
>>
http://www.siteloom.dk
>
> Super
> Mange tak, det virker
Simplere ville være
WHERE domain NOT LIKE '%.dk'
Men uanset om du bruger det ene eller det andet forslag, kommer det
til at sutte bigtime når du får nogle 100k poster at søge på.. du
kan ikke bruge nogen indekses, så hele tabellen skal gennemløbes for
hver forespørgsel. Indekses virker kun på den venstre side af en
tegnstreng.
Et ofte brugt trick til netop domænesøgniner er at lave et ekstra
felt hvor du gemmer REVERSE(domain), og så indekserer dette. Når du
så skal finde all != .dk domæner, bruger du blot
WHERE reversedomain NOT LIKE "kd.%".
Dette vil bruge dit indeks og være mange gange hurtigere.
Mvh
/ Carsten