Avatar billede eazye Nybegynder
19. juli 2003 - 15:31 Der er 9 kommentarer og
2 løsninger

Begrænsninger på SELECT i MySQL?

Hey eksperter, her er lige nogle frække spørgsmål i MySQL-kategorien (dog har jeg oprettet i php, da jeg vil have svar i php)

Når man vil have begrænsninger på resultatet i MySQL, skriver man som regel "select from tabel where [begrænsning]" men hvordan kan man lave disse begrænsninger:

select from [tabel] WHERE:
- "felt"'s første bogstav er 'a'
- "felt"'s første "bogstav" er 1
- "felt"'s første bogstav ikke er en del af et array()

på forhånd tak

- EazyE
Avatar billede htm Nybegynder
19. juli 2003 - 15:46 #1
1. SELECT * FROM dintabel WHERE SUBSTRING(feltnavn,1,1) = 'a'
2. SELECT * FROM dintabel WHERE SUBSTRING(feltnavn,1,1) = '1'
3. Skal jeg lige have forklaret lidt mere?
Avatar billede htm Nybegynder
19. juli 2003 - 15:49 #2
Du kan også bruge følgende men ovenstående er hurtigst!

SELECT * FROM dintabel WHERE feltnavn LIKE 'a%'
SELECT * FROM dintabel WHERE feltnavn REGEXP '^a'
SELECT * FROM dintabel WHERE LEFT(feltnavn,1) = 'a'
Avatar billede eazye Nybegynder
19. juli 2003 - 16:08 #3
ok, nr 3:

$array = array('a','b','c','d','0','1','2','3');

det første bogstav må ikke være a,b,c,d,0,1,2,3
Avatar billede htm Nybegynder
19. juli 2003 - 16:37 #4
Ved ikke lige hvordan det gøres på den bedste måde

måske kan du bruge:

SELECT * FROM dintabel WHERE feltnavn IN ($array)
Avatar billede eazye Nybegynder
19. juli 2003 - 16:39 #5
burde det så ikke være noget alá:

SELECT * FROM dintabel WHERE SUBSTRING(feltnavn,1,1) NOT IN ($array)

?
Avatar billede eazye Nybegynder
19. juli 2003 - 17:25 #6
hmm, det virker ikke! any help on its way?
Avatar billede htm Nybegynder
19. juli 2003 - 17:31 #7
Jow det burde være NOT IN ;o)

Dette vil sikkert virke: (altså ved at indtaste det manuelt)

SELECT * FROM dintabel WHERE SUBSTRING(feltnavn,1,1) NOT IN ('a','b','c','d','0','1','2','3')

Så skal du bare få php til at lave den rette streng til det, men er ikke med på hvordan dette gøres nemest!
Avatar billede schaefner Juniormester
19. juli 2003 - 17:33 #8
$array = array('a','b','c','d','0','1','2','3');

$str = implode('\',\'',$array);

SELECT * FROM dintabel WHERE SUBSTRING(feltnavn,1,1) NOT IN ('$str')
Avatar billede schaefner Juniormester
19. juli 2003 - 17:35 #9
eller:
$str = implode("','",$array);
Avatar billede eazye Nybegynder
19. juli 2003 - 17:44 #10
tak tak.. læg et svar schaefner
Avatar billede schaefner Juniormester
19. juli 2003 - 17:45 #11
svar'

mvh. Jesper Sørensen
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
Vi tilbyder markedets bedste kurser inden for webudvikling

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

IT-JOB