/ Forside / Teknologi / Udvikling / SQL / Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
SQL
#NavnPoint
pmbruun 1704
niller 962
fehaar 730
Interkril.. 701
ellebye 510
pawel 510
rpje 405
pete 350
gibson 320
10  smorch 260
ELSE IF i mysql
Fra : Mikkel Bundgaard


Dato : 15-08-05 14:54

Jeg har opsat en mailserverløsning med mysql backend til spamassassin.

Mit problem er at jeg ønsker brugeren selv kan opsætte en værdi for
hvornår den skal rejecte mails helt og hvis brugeren ikke har indsat
værdien skal den hente værdien fra GLOBAL.


SELECT value FROM userpref
WHERE (username='testperson' AND preference='server_reject_mail')
ELSE
WHERE (username='testperson' AND preference='server_reject_mail')

Ovenstående virker ikke, ved jeg godt, men hvordan skal det formuleres
korrekt? Jeg er ikke specielt skarp i SQL endnu


Anyone som kan hjælpe


Hilsen Mikkel

 
 
Martin Christensen (15-08-2005)
Kommentar
Fra : Martin Christensen


Dato : 15-08-05 16:43

-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

Mikkel Bundgaard <mikkel@notfound.invalid> writes:

> Jeg har opsat en mailserverløsning med mysql backend til
> spamassassin.

Heuristiske filtre er generelt ikke så gode som rent statistiske
filtre. Det er godt nok helt OT, men jeg vil alligevel råde dig til at
overveje alternativerne.

> SELECT value FROM userpref
> WHERE (username='testperson' AND preference='server_reject_mail')
> ELSE
> WHERE (username='testperson' AND preference='server_reject_mail')
>
> Ovenstående virker ikke, ved jeg godt, men hvordan skal det formuleres
> korrekt? Jeg er ikke specielt skarp i SQL endnu

Når du har fundet ud af at bruge AND, hvorfor så ikke også OR? Den
skulle gøre nøjagtigt det, du ønsker.

SELECT value FROM userpref
WHERE (username='testperson' AND preference='server_reject_mail')
OR
(username='testperson' AND preference='server_reject_mail')

Martin

- --
Homepage: http://www.cs.auc.dk/~factotum/
GPG public key: http://www.cs.auc.dk/~factotum/gpgkey.txt
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.1 (GNU/Linux)
Comment: Using Mailcrypt+GnuPG <http://www.gnupg.org>

iEYEARECAAYFAkMAuBYACgkQYu1fMmOQldXclgCeNuDfKfDamZCY2jj1dVuOnCXY
zQIAoK+oh7B1uD9x2Ong3JQeJD/b5hhn
=67E1
-----END PGP SIGNATURE-----

Mikkel Bundgaard (15-08-2005)
Kommentar
Fra : Mikkel Bundgaard


Dato : 15-08-05 18:19


>>Jeg har opsat en mailserverløsning med mysql backend til
>>spamassassin.
>

> Heuristiske filtre er generelt ikke så gode som rent statistiske
> filtre. Det er godt nok helt OT, men jeg vil alligevel råde dig til at
> overveje alternativerne.


Problemet er virkemåden i mit filter. Men hvad er problemet med ELSE
sætningen ???
>
> Når du har fundet ud af at bruge AND, hvorfor så ikke også OR? Den
> skulle gøre nøjagtigt det, du ønsker.


Hvis både GLOBAL og TESTPERSON eksisterer returneres der 2 resultater og
jeg er kun interesseret i et.

Hilsen Mikkel

Martin Christensen (16-08-2005)
Kommentar
Fra : Martin Christensen


Dato : 16-08-05 06:36

-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

Mikkel Bundgaard <mikkel@notfound.invalid> writes:

> Men hvad er problemet med ELSE sætningen ???

At der ikke er noget, der hedder ELSE, med mindre jeg tager meget
fejl.

> Hvis både GLOBAL og TESTPERSON eksisterer returneres der 2 resultater
> og jeg er kun interesseret i et.

Så brug SELECT DISTINCT value ... i stedet, eller muligvis
SELECT value ... LIMIT 1.

Martin

- --
Homepage: http://www.cs.auc.dk/~factotum/
GPG public key: http://www.cs.auc.dk/~factotum/gpgkey.txt
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.1 (GNU/Linux)
Comment: Using Mailcrypt+GnuPG <http://www.gnupg.org>

iEYEARECAAYFAkMBeyQACgkQYu1fMmOQldXNnwCgys522AcfcvfxWXcZCYFSzKoj
vnQAoJGQR/DnDyKzPRKSamIwk7Q1ZVaT
=jLlc
-----END PGP SIGNATURE-----

Martin Christensen (16-08-2005)
Kommentar
Fra : Martin Christensen


Dato : 16-08-05 06:44

-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

Martin Christensen <martin.sand.christensen@gmail.com> writes:

>> Hvis både GLOBAL og TESTPERSON eksisterer returneres der 2 resultater
>> og jeg er kun interesseret i et.
>
> Så brug SELECT DISTINCT value ... i stedet, eller muligvis
> SELECT value ... LIMIT 1.

Hovsa! Jeg kiggede for meget efter din kode og for lidt efter din
beskrivelse.

SELECT value FROM userpref
WHERE (username='testperson' AND preference='server_reject_mail')
UNION
SELECT value FROM userpref
(username='global' AND preference='server_reject_mail')

Martin

- --
Homepage: http://www.cs.auc.dk/~factotum/
GPG public key: http://www.cs.auc.dk/~factotum/gpgkey.txt
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.1 (GNU/Linux)
Comment: Using Mailcrypt+GnuPG <http://www.gnupg.org>

iEYEARECAAYFAkMBfRYACgkQYu1fMmOQldV4BwCgyRtK5ur5spWZprCzR8KFX8q3
2gwAoJpUYyUYvFJ7X/pn+XT+4+RtYKKi
=pVXc
-----END PGP SIGNATURE-----

Thor (16-08-2005)
Kommentar
Fra : Thor


Dato : 16-08-05 22:13

Den her bør virke, - (ikke testet) forudsat value er null hvis brugeren ikke
har udfyldt feltet

mvh Thor


> SELECT 1, value FROM userpref
> WHERE (username='testperson' AND preference='server_reject_mail' and not
> value is null)
> UNION
> SELECT 2, value FROM userpref
> (username='global' AND preference='server_reject_mail')
order by 1
>
> Martin
>
> - --
> Homepage: http://www.cs.auc.dk/~factotum/
> GPG public key: http://www.cs.auc.dk/~factotum/gpgkey.txt
> -----BEGIN PGP SIGNATURE-----
> Version: GnuPG v1.4.1 (GNU/Linux)
> Comment: Using Mailcrypt+GnuPG <http://www.gnupg.org>
>
> iEYEARECAAYFAkMBfRYACgkQYu1fMmOQldV4BwCgyRtK5ur5spWZprCzR8KFX8q3
> 2gwAoJpUYyUYvFJ7X/pn+XT+4+RtYKKi
> =pVXc
> -----END PGP SIGNATURE-----



Martin Christensen (17-08-2005)
Kommentar
Fra : Martin Christensen


Dato : 17-08-05 06:39

-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

"Thor" <thor@thor.thor> writes:

> Den her bør virke, - (ikke testet) forudsat value er null hvis
> brugeren ikke har udfyldt feltet
>
> mvh Thor
>
>
>> SELECT 1, value FROM userpref
>> WHERE (username='testperson' AND preference='server_reject_mail' and not
>> value is null)
>> UNION
>> SELECT 2, value FROM userpref
>> (username='global' AND preference='server_reject_mail')
> order by 1

1 er ikke et kolonnenavn, så man kan ikke sortere på det, men ja, jeg
havde helt glemt at få sorteret mængden, hvilket ikke er uvæsentligt.
Desuden indsætter man vel ikke en række for brugeren, hvis value er
NULL alligevel. Det giver ingen mening. Jeg ville dermed droppe det
kriterium. Altså...

SELECT 1 AS sort_col, value FROM userpref
WHERE (username='testperson' AND preference='server_reject_mail')
UNION
SELECT 2 AS sort_col, value FROM userpref
(username='global' AND preference='server_reject_mail')
ORDER BY sort_col ASC

Martin

- --
Homepage: http://www.cs.auc.dk/~factotum/
GPG public key: http://www.cs.auc.dk/~factotum/gpgkey.txt
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.1 (GNU/Linux)
Comment: Using Mailcrypt+GnuPG <http://www.gnupg.org>

iEYEARECAAYFAkMCzXgACgkQYu1fMmOQldWsxgCgh984QsXEVtCyiEnrF5GcFNP9
C7kAoOggMq4RSEiAaSJL45wE1kB2yeom
=S7oX
-----END PGP SIGNATURE-----

Mikkel Bundgaard (17-08-2005)
Kommentar
Fra : Mikkel Bundgaard


Dato : 17-08-05 20:20

TAk for hjælpen jeg prøver at gå videre med det :)

Hilsen MIkkel

Martin Christensen wrote:
> -----BEGIN PGP SIGNED MESSAGE-----
> Hash: SHA1
>
> "Thor" <thor@thor.thor> writes:
>
>
>>Den her bør virke, - (ikke testet) forudsat value er null hvis
>>brugeren ikke har udfyldt feltet
>>
>>mvh Thor
>>
>>
>>
>>>SELECT 1, value FROM userpref
>>>WHERE (username='testperson' AND preference='server_reject_mail' and not
>>>value is null)
>>>UNION
>>>SELECT 2, value FROM userpref
>>> (username='global' AND preference='server_reject_mail')
>>
>>order by 1
>
>
> 1 er ikke et kolonnenavn, så man kan ikke sortere på det, men ja, jeg
> havde helt glemt at få sorteret mængden, hvilket ikke er uvæsentligt.
> Desuden indsætter man vel ikke en række for brugeren, hvis value er
> NULL alligevel. Det giver ingen mening. Jeg ville dermed droppe det
> kriterium. Altså...
>
> SELECT 1 AS sort_col, value FROM userpref
> WHERE (username='testperson' AND preference='server_reject_mail')
> UNION
> SELECT 2 AS sort_col, value FROM userpref
> (username='global' AND preference='server_reject_mail')
> ORDER BY sort_col ASC
>
> Martin
>
> - --
> Homepage: http://www.cs.auc.dk/~factotum/
> GPG public key: http://www.cs.auc.dk/~factotum/gpgkey.txt
> -----BEGIN PGP SIGNATURE-----
> Version: GnuPG v1.4.1 (GNU/Linux)
> Comment: Using Mailcrypt+GnuPG <http://www.gnupg.org>
>
> iEYEARECAAYFAkMCzXgACgkQYu1fMmOQldWsxgCgh984QsXEVtCyiEnrF5GcFNP9
> C7kAoOggMq4RSEiAaSJL45wE1kB2yeom
> =S7oX
> -----END PGP SIGNATURE-----

Søg
Reklame
Statistik
Spørgsmål : 177459
Tips : 31964
Nyheder : 719565
Indlæg : 6408188
Brugere : 218881

Månedens bedste
Årets bedste
Sidste års bedste