2

5桁の文字列を作成してmysqlデータベースに追加するJavaプログラムを作成しました。生成される文字列は、1〜9の数字のすべての組み合わせであり、azとAZのような文字です。

00000 ... 00009 0000a ... 0000z 0000A ... 0000Z 00010 ... 00019

等々

私の問題は、これらの値をデータベースに追加するときに、0000aがすでに存在するため、0000Aが追加されないことです。

たとえば、私が

INSERT INTO `mytable`(`mycolumn`) VALUES ("00000");

INSERT INTO `mytable`(`mycolumn`) VALUES ("0000a");

INSERT INTO `mytable`(`mycolumn`) VALUES ("0000A");

私のデータベースに表示される値は00000と0000aだけです

とにかく、mysqlにこの2つを区別させて、一意に見える文字列を作成できるようにすることはできますか?

4

2 に答える 2

1

MySql文字列では、デフォルトで大文字と小文字が区別されます

フィールドutf8_binのように大文字と小文字を区別する照合を使用できます。MYCOLUMN

CREATE TABLE MYTABLE (
    ID BIGINT AUTO_INCREMENT, 
    // other fields...

    MYCOLUMN VARCHAR(128) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL UNIQUE, 
    PRIMARY KEY(ID)
);
于 2012-10-20T21:09:06.227 に答える
0

列で大文字と小文字を区別するには、定義でキーワードbinaryを使用できます。例えば:

CREATE TABLE mytable (
    mycolumn VARCHAR(20) BINARY
);

とにかく、最善の解決策は、@Reimeusが言うように大文字と小文字を区別する照合を使用することです。

于 2012-10-20T21:07:16.047 に答える