Schrift
Wiki:Tipp zum Debugging: use Data::Dumper; local $Data::Dumper::Useqq = 1; print Dumper \@var;
[thread]12322[/thread]

Abfrage nicht normalisierter db

Leser: 1


<< >> 6 Einträge, 1 Seite
esskar
 2008-08-09 02:58
#113260 #113260
User since
2003-08-04
7321 Artikel
ModeratorIn

user image
ich hab eine tabelle

id | username | attribute | value

daten können z.b. so ausshene

1 | esskar | vorname | Sascha
2 | esskar | nachname | Kiefer
3 | esskar | type | reject
4 | foo | vorname | foo
5 | foo | nachname | oof
6 | bar | type | accept
7 | uhu | type | reject

jetzt würde ich gerne die usernamen haben, bei denen das attribute 'type' entweder nicht gesetzt ist oder nicht 'reject' ist
scriptor
 2008-08-09 03:38
#113261 #113261
User since
2008-05-07
69 Artikel
BenutzerIn
[Homepage] [default_avatar]
Code: (dl )
1
2
3
4
5
6
SELECT username 
FROM tabelle
WHERE
attribute != 'type'
OR
( attribute = 'type' AND value != 'reject' )


Soweit es Deine Beschreibung hergab, natürlich ungetestet!
pq
 2008-08-09 03:40
#113262 #113262
User since
2003-08-04
12208 Artikel
Admin1
[Homepage]
user image
[sql]select
username, sum( if(attribute='type' and value='reject',1,0) ) as rejected
from foo group by username having rejected = 0;[/sql]
das geht bei mir...
Always code as if the guy who ends up maintaining your code will be a violent psychopath who knows where you live. -- Damian Conway in "Perl Best Practices"
lesen: Wiki:Wie frage ich & perlintro Wiki:brian's Leitfaden für jedes Perl-Problem
pq
 2008-08-09 03:45
#113263 #113263
User since
2003-08-04
12208 Artikel
Admin1
[Homepage]
user image
scriptor+2008-08-09 01:38:15--
Code: (dl )
1
2
3
4
5
6
SELECT username 
FROM tabelle
WHERE
attribute != 'type'
OR
( attribute = 'type' AND value != 'reject' )

das klappt nicht ganz =)
liefert:
Code: (dl )
1
2
3
4
5
6
7
8
9
+----------+
| username |
+----------+
| esskar |
| esskar |
| foo |
| foo |
| bar |
+----------+
Always code as if the guy who ends up maintaining your code will be a violent psychopath who knows where you live. -- Damian Conway in "Perl Best Practices"
lesen: Wiki:Wie frage ich & perlintro Wiki:brian's Leitfaden für jedes Perl-Problem
esskar
 2008-08-09 04:14
#113264 #113264
User since
2003-08-04
7321 Artikel
ModeratorIn

user image
@pg: danke.
habs mal mit dbix versucht

Code: (dl )
1
2
3
4
5
6
7
8
9
my $check = $c->model('FreeRadius')->resultset('Radcheck')
->search(
{ },
{
select => [ 'username', "SUM(if(attribute='auth-type' and value='reject',1,0)) as rejected" ],
as => [ 'username', 'rejected' ],
group_by => \"username having rejected = 0"
}
);


da kommt aber nix bei rum ... irgendwie
in mysql selber sieht es gut aus
esskar
 2008-08-09 04:14
#113265 #113265
User since
2003-08-04
7321 Artikel
ModeratorIn

user image
ah doch, danke @pq.
<< >> 6 Einträge, 1 Seite



View all threads created 2008-08-09 02:58.