28. oktober 2002 - 11:44Der er
12 kommentarer og 1 løsning
mysql og forbogstaver
Hej jeg skal vælge et antal queries hvor alle startbogstaverne starter med a - e, også en ny med f - j. Når man så vælger a-e finder den alle som har disse startbogstaver.
Hvordan skal min sql-sætning nogenlunde se ud. og bliver jeg nødt til at lave en ny sql-sætning for hvert eneste bogstav???
Ovenstående løsning gør netop hvad du har behov for. Dog kan du i nyere versioner af MySQL bruge regular expressions, så man slipper for at skulle skrive samtlige bogstaver fra a-e, fra f-j osv. Bør være noget i retning af SELECT id, navn LEFT(navn, 1) as forbogstav FROM tabel WHERE forbogstav IN ([a-e]) osv osv osv.
Jeg kan sgu ikke få den til at virke. Den melder godt nok ikke fejl i strengen, men det er som om at den ikke kan finde noget i min mysql-db.
den ser således ud: $query_ae = "SELECT id, gloss_overskrift, LEFT(gloss_overskrift, 1) as forbogstav FROM tblglossary WHERE forbogstav REGEXP '[a-w]'";
nope det funker stadig ikke......damn......den der hedder id efter SELECT...SKAL den hedde id eller hvad står den for. noget andet er hvorfor 'forbogstav' skal stå der????
select * from <tabelnavn> where left(<kolonnenavn>,1) IN ('a','b','c', <osv.>);
Ovenstående statement vil give en liste over samlige inputs i tabellen, som starter med de angivne bogstaver. Ud fra hvad du skriver, kan det se ud som om du skal skrive: select * from tblglossary where left(gloss_overskrift,1) IN ('a','b','c','d','e'); Det skulle så give dig en liste fra a - f.
Det undre mig i øvrigt at du sagde at den ikke meldte fejl. Når man bruger WHERE skal den sige at forbogstav ikke er kendt. Sikker på du cheker rigtigt for fejl?
$query_ae = "select * from tabel where left(gloss_overskrift,1) IN ('a','b','c','d','e')";
Synes godt om
Ny brugerNybegynder
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.