On 17 Mar 2006 00:22:10 -0800, "Henrik Stidsen"
<henrikstidsen@gmail.com> wrote:
>> Det er ikke en fejl.
>Hvis det ikke er en fejl, er det så en fejl at MySQL 4 skelner mellem
>de to tegn ?
MySQL 4.0 eller 4.1? Collations blev indført i 4.1, så her tror jeg
også, du med en passende collation kan vælge at skelne.
>e og E er også samme tegn, det er e og é ikke - og som sagt, MySQL 4
>(og .NET iøvrigt...) skelner mellem e og é, hvorfor gør 5.0 så ikke
>?
e og E er to forskellige tegn, som man ud fra forskellige
sammenlignings-definitioner kan vælge at betragte som ét og samme
tegn. Denne sammenlignings-lighed har rigtigt nok været normen i en
lang række systemer (hvor é måske er faldet uden for).
Men vælger du fx en binær collation, vil e og E også være to
forskellige tegn.
>Jeg kan, tilsyneladende, ikke bruge binary operatoren på et varchar
>felt, men det ser ud til at virke hvis jeg benytter varbinary istedet
>for varchar. Om der så er andre ulemper der ved jeg ikke lige...
Hvilken MySQL kan du ikke det i?
CREATE TABLE foo (id VARCHAR(20) BINARY);
... virker fint i MySQL 5.0. En efterfølgende show create table giver
så her:
CREATE TABLE `foobar` (
`id` varchar(20) character set latin1 collate latin1_bin default NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1 COLLATE=latin1_danish_ci;
Med andre ord, BINARY er blot en shortcut for den tilsvarende binære
collation (fx latin1_bin) for det aktuelle charset.
VARBINARY() er så en felttype for sig.
--
- Peter Brodersen
Find dig selv:
http://map.ter.dk/