!! Da jeg ikke har kunnet få hjælp på dk.edb.database, prøver jeg nu her istedet. !!
Jeg programmere i PHP og bruger hertil noget MySQL database... i den forbindelse er jeg kommet frem til \'et godt spørgsmål\'! Problemet er ikke uløseligt, hvis jeg benytter mig af PHP som problemløser. Men jeg kunne godt tænke mig at vide om det kan lade sig gøre uden hjælp fra PHP.
Har en tabel: CREATE TABLE texts ( textid mediumint(9) NOT NULL auto_increment, languageid char(2) NOT NULL default \'da\', textkey varchar(32) NOT NULL default \'\', textvalue text NOT NULL, PRIMARY KEY (textid), )
Eksempel: 1 da kb1 tastatur1 2 en kb1 keyboard1 3 da mo5 skærm5 4 en sc2 scanner2
I php har jeg så to variabler - en primær(da) og en sekundær(en) languageId.
I forhold til tabellen ovenover, skal det så altid være sådan her: Når der vælges ud fra textkey (textkey = \'kb1\'), og det resulterer i 2 rækker med hvert sit languageid (prim. og sek.) skal den kun hente den række med den primære languageid. Dvs. textkey = \'kb1\' skal returnere rækken: 1 da kb1 tastatur1. (og kun denne række) Hvis textkey = \'mo5\' skal der returneres: 3 da mo5 skærm5 Hvis textkey = \'sc2\' skal der returneres: 4 en sc2 scanner2
\' SQL forespørgsel - med primær sprog strSQL = \"select * from texts where textkey = v_textkey and languageid = sprog\" Set rs = Conn.Execute(strSQL)
\' Check om record med primært sprog er fundet if rs.EOF or rs.BOF then \' SQL forespørgsel - uden primær sprog strSQL = \"select * from texts where textkey = v_textkey\" Set rs = Conn.Execute(strSQL) end if
if rs.EOF or rs.BOF then response.write \"Ingen records fundet\" else Do Response.Write rs(\"textid\") & rs(\"languageid\") & rs(\"textkey\") & rs(\"textvalue\") & \"<br>\" rs.MoveNext Loop While Not rs.EOF end if %>
nordclc> Det er også noget i den retning jeg har tænkt mig at gøre, hvis det er min eneste mulighed. Men mit håb var jo at man kunne lave en query som kunne gi\' mig lige præcis de data jeg havde brug for, og ikke mere... Hvis bare man kunne lave sub-selects i MySQL, ville det så vidt jeg kan se ikke være nær så svært at lave.
Du kan på ingen måde få fat ved een forespørgsel! Hvordan ville du gøre det v.hj.a. subselect? Der er 4 perspektiver i dette:
1. 1 record med primært sprog 2. 1 record uden primært sprog 3. Flere records, hvoraf en med primært sprog 4. Flere records, hvoraf ingen er med primært sprog
Da rækkefølgen på primært sprog jo ikke altid er kronologisk, kan du ikke benytte en order by!
Hvis du kun har de to sprog, og da altid er primært, er der vel ikke noget galt i en ORDER BY? Jeg vedkender selvfølgelig gerne, at det er en smule fusket.
SELECT * FROM texts WHERE textkey = \'kb1\' ORDER BY languageid LIMIT 1
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.