Avatar billede hoppe11 Nybegynder
22. september 2007 - 12:06 Der er 8 kommentarer og
1 løsning

søge i alle tables

Jeg skal tælle rækker i alle tables i hele min database hvor feltet 'datauser_id'=44

Hvordan kan jeg gøre det lettest?
Avatar billede kalp Novice
22. september 2007 - 12:09 #1
Du har vel en SELECT SQL QUERY der i forvejen kan hente alle række hvor feltet datauser_id = 44

for at tælle retter du bare i SELECT COUNT("entilfældigkolonne") as Total .... resten af din query her)

så kan du udlæse Total for at se hvor mange rækker det gav.
Avatar billede hoppe11 Nybegynder
22. september 2007 - 12:13 #2
det må hellere lige tilføjes at alle tables ikke nødvendigvis har feltet datauser_id
Avatar billede kalp Novice
22. september 2007 - 12:18 #3
ja det er underordnet..du laver betingelse i din  AND del...

f.eks hvis den er i tabel 3

..... and tabel3.datauser_id = '44'
Avatar billede hoppe11 Nybegynder
22. september 2007 - 12:25 #4
jeg tror ikke jeg formulerer mig godt nok :)

hvordan kan man lave en query som ser om der findes et felt som f.eks. hedder 'datauser' i en table?
Avatar billede ffsoft Praktikant
22. september 2007 - 15:05 #5
Du skal lede i den database der hedder information_schema,
i den er der en tabel der hedder columns og den indeholder
(sjovt nok) alle felter i alle databaser.

Use information_schema;
SELECT * FROM COLUMNS where column_name = 'datauser';
Avatar billede hoppe11 Nybegynder
22. september 2007 - 15:17 #6
Table 'xxx_dk_db.information_schema' doesn't exist
Avatar billede hoppe11 Nybegynder
22. september 2007 - 15:19 #7
min fejl.. :) tak for hjælpen
Avatar billede hoppe11 Nybegynder
22. september 2007 - 15:50 #8
er det forresten efterfølgende til at tælle tilfælde hvor 'datauser_id'=44 uden at rode sig ud i et væld af query's

jeg tænkte på om det måske var muligt at komme til at tælle det hele i en eller bare et par query's, nu hvor man ved hvilke tables man skal søge i?
Avatar billede ffsoft Praktikant
23. september 2007 - 17:31 #9
Selv tak.

Når du ved hvad tabel navnet er, kan du gemme det i en variabel
og flette det ind i en ny forespørgsel.

Pseudo kode:

SELECT Table_Name FROM COLUMNS where column_name = 'datauser';

strTabelNavn = rst("Table_Name")

strSQL = "Select Count(*) From " & strTabelNavn & " Where DataUesr_ID = 44;"

Den korrekte syntaks kommer an på om du bruger .php eller .asp/asp.net.

Lav et nyt spørgsmål i den relevante gruppe.
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Computerworld tilbyder specialiserede kurser i database-management

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester