|
| WHERE nr="et tal".... Fra : Magnus |
Dato : 08-03-05 14:38 |
|
SQL="SELECT * FROM Profiler WHERE nr='?' ORDER By nr"
Hvordan er det jeg gør i MySQL for at finde alle poster hvor feltet "nr" er
et tal?
Hvordan er det jeg gør i MySQL for at finde alle poster hvor feltet "nr" er
et tekst?
Hvordan er det jeg gør i MySQL for at finde alle poster hvor feltet "nr" er
en dato?
osv. med hvad sådan en celle nu kan indeholder?
| |
Nikolaj Hansen (09-03-2005)
| Kommentar Fra : Nikolaj Hansen |
Dato : 09-03-05 19:34 |
|
Magnus wrote:
> SQL="SELECT * FROM Profiler WHERE nr='?' ORDER By nr"
>
>
> Hvordan er det jeg gør i MySQL for at finde alle poster hvor feltet "nr" er
> et tal?
>
> Hvordan er det jeg gør i MySQL for at finde alle poster hvor feltet "nr" er
> et tekst?
>
> Hvordan er det jeg gør i MySQL for at finde alle poster hvor feltet "nr" er
> en dato?
>
> osv. med hvad sådan en celle nu kan indeholder?
>
>
Du forsøger at give din column tre forskellige domains: et tal (number),
streng (varchar) og dato (date).
Det er meget dårligt database design, da du vil være bundet til den
laveste fællesnævner, en string (varchar).
Prøv at lave 3 columns i stedet, der har sigende navne. Så vil du være i
stand til at skrive:
select * from profiler where date_nr is not null;
Det vil stadig betyde at du har masser af null columns på profiler
tabellen, som også er lidt halvdårligt design.
Du bør i øvrigt aldrig skrive:
select * from foo;
Men
select bar from foo;
Da du så udpeger de columns, der er relevante for dit query. Det er mere
effektivt for sql cachen i dit DBMS.
mvh
Nikolaj
| |
Magnus (10-03-2005)
| Kommentar Fra : Magnus |
Dato : 10-03-05 14:51 |
|
>> SQL="SELECT * FROM Profiler WHERE action='?' ORDER By action"
>>
Det er fordi jeg har en kolonne med et id nr på en fodboldspiller og en med
en kaldet action. Og action feltet indeholder ne kode som fx. A for
advarsel, U for udvisning osv. men hvis det er et tal/nr så er det en
udskiftning og nummeret referere til den spiller som kom ind istedet.
Derfor vil jeg have en liste over alle udskiftninger og det er jo alle
poster hvor feltet action er et tal?
/Magnus
| |
Nikolaj Hansen (11-03-2005)
| Kommentar Fra : Nikolaj Hansen |
Dato : 11-03-05 18:44 |
|
Magnus wrote:
> Det er fordi jeg har en kolonne med et id nr på en fodboldspiller og en med
> en kaldet action. Og action feltet indeholder ne kode som fx. A for
> advarsel, U for udvisning osv. men hvis det er et tal/nr så er det en
> udskiftning og nummeret referere til den spiller som kom ind istedet.
Du bør så lave en action tabel, med alle de actions du har eks:
id Action
------------------
1 Udvisning
2 Advarsel
3 Udskiftning
En tabel, der indeholder spillere:
Id Spillernavn Plads
------------------------------
1 Michael Laudrup 9
2 Del Piero 10
Og en relation der imellem (tidspunkt):
SpillerId ActionId Tidspunkt
--------------------------------------------
1 2 01-01-99 22:22:22
2 3 01-01-99 22:23:00
>
> Derfor vil jeg have en liste over alle udskiftninger og det er jo alle
> poster hvor feltet action er et tal?
Select
a.spillernavn, b.tidspunkt
from
spillere a,
actions b,
tidspunkt c
where
a.id = c.spillerid
and b.id = c.actionid
and c.id = 3;
mvh
Nikolaj Hansen
| |
Nikolaj Hansen (12-03-2005)
| Kommentar Fra : Nikolaj Hansen |
Dato : 12-03-05 18:40 |
|
Sorry, Det skulle self være
Select
a.spillernavn, b.tidspunkt
from
spillere a,
actions b,
tidspunkt c
where
a.id = c.spillerid
and b.id = c.actionid
and b.id = 3;
mvh
Nikolaj Hansen
| |
|
|