Avatar billede jarret Nybegynder
16. juni 2005 - 12:01 Der er 15 kommentarer og
1 løsning

kan jeg få dbms´en til at ignorere stor og så, bogstaver ?

Jeg laver en sql select sætning i en database for at tjekke om en tabel eksisterer. Den finder ikke tabellen "Vare" hvis brugeren indtaster "vare", det vil jeg gerne at den skulle.

Nogle bud??
Avatar billede barklund Nybegynder
16. juni 2005 - 12:04 #1
Du har da ikke brugere til at indtaste navnet på den tabel, du skal søge i? Det lyder som et meget mærkeligt setup!
Avatar billede arne_v Ekspert
16. juni 2005 - 12:08 #2
hvis du mener tabel navne så er de case sensitive på Linux

(http://dev.mysql.com/doc/mysql/en/name-case-sensitivity.html)

hvis det er værdier så skulle LIKE default være ikke casesensitiv, men du skal
naturligvis have valgt det rigtige karakter sæt

(http://dev.mysql.com/doc/mysql/en/case-sensitivity.html)
Avatar billede jarret Nybegynder
16. juni 2005 - 12:15 #3
det er selve tabel navnet
Avatar billede jarret Nybegynder
16. juni 2005 - 12:16 #4
barlund- det er et lille dialog forum hvor brugeren indtaster navet på den dialog han gerne vil deltage i.
Avatar billede jarret Nybegynder
16. juni 2005 - 12:18 #5
arne - hvad med at konverter tabelnavnet, når brugeren opretter tabellen, til store bogstaver.
Avatar billede fsconsult.dk Nybegynder
16. juni 2005 - 12:22 #6
Ofte vil man lade tabelnavne består af udelukkende store eller små bogstaver, hvilket du så kan konvertere det tabelnavn brugeren indtaster til.

Jeg ville nok vælge at dialognavnet indgik som felt i din tabel istedet, så du ikke får oprettet en hel masse små tabeller pr. dialog
Avatar billede jarret Nybegynder
16. juni 2005 - 12:24 #7
huummm det var en mulighed fs. men så skal jeg vel lave user defined types ikke?
Avatar billede arne_v Ekspert
16. juni 2005 - 12:26 #8
du kan løse problemet ved at konvertere tabelnavne ved tabel oprettelse og
ved forespørgsel til det samme (all lower case, all upper case, capitalized etc.)
Avatar billede arne_v Ekspert
16. juni 2005 - 12:27 #9
jeg ville iøvrigt også lade dialog navnet være et felt i en tabel og ikke
en tabel
Avatar billede jarret Nybegynder
16. juni 2005 - 12:28 #10
men dialogen indeholder en række beskeder der hver især har forfatter, indhold, tid, id....
Avatar billede jarret Nybegynder
16. juni 2005 - 12:29 #11
jeg skal bruge - user defined types -  for at kunne samle det i en tabel ikke
Avatar billede jarret Nybegynder
16. juni 2005 - 12:34 #12
Arne vil du vise mig hvor jeg skal sætter "all lower case" ind? (er det en sql kommando?)

CREATE TABLE `$navn` (`id` INT NOT NULL AUTO_INCREMENT , `forfatter` VARCHAR( 100 ) NOT NULL , `indhold` TEXT NOT NULL ,`tid` DATETIME NOT NULL , PRIMARY KEY ( `id` ))
Avatar billede arne_v Ekspert
16. juni 2005 - 12:41 #13
det er ikke noget du gør i SQL men noget du gør i din applikation (PHP)

$navn = strtolower($navn);

f.eks.
Avatar billede arne_v Ekspert
16. juni 2005 - 12:41 #14
strupper og ucfirst til de andre muligheder
Avatar billede jarret Nybegynder
16. juni 2005 - 13:07 #15
super - den er i vinkel med:

$navn = strtoupper($navn);

Lægger du et svar arne
Avatar billede arne_v Ekspert
16. juni 2005 - 14:36 #16
ok

men fsconsult var vel egentligt først med den ide !?
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