Может ли mysql-database сохранять строки с учетом регистра, как в UNIX?

0

Можно ли хранить "Имя файла" и "имя файла" в базе данных mysql?

Теги:
case-sensitive

3 ответа

4
Лучший ответ

Я предполагаю, что вы имеете в виду, сохраните имя файла и имя файла в столбце с ограничением UNIQUE (например, PRIMARY KEY)?

Если да, то да, но вы должны сказать MySQL использовать регистр с учетом регистра при CREATE ing или ALTER в таблице. Это можно сделать с помощью VARCHAR(...) COLLATE some_collation_cs (см.) или просто VARCHAR(...) BINARY.

  • 0
    Спасибо! Установка столбца в varbinary сделала это.
2

Можно ли хранить "Имя файла" и "имя файла" в базе данных mysql?

Если столбец, в который вы вставляете, находится UNIQUE, убедитесь, что его сортировка чувствительна к регистру:

CREATE TABLE t_ci (test VARCHAR(50)  PRIMARY KEY COLLATE latin1_swedish_ci);

INSERT
INTO    t_ci
VALUES
('Filename'),
('filename');

-- Fails

CREATE TABLE t_cs (test VARCHAR(50)  PRIMARY KEY COLLATE utf8_bin);

INSERT
INTO    t_cs
VALUES
('Filename'),
('filename');

- Succeeds
0

MySQL всегда сохраняет регистр при сохранении строк.

При поиске строки обычно выполняется поиск без учета регистра. Это зависит от сортировки, но по умолчанию регистр не учитывается.

Чтобы выполнить поиск с учетом регистра, вы можете изменить сортировку:

SELECT x FROM table WHERE y LIKE '%Filename%' COLLATE latin1_general_cs

Подробнее см. чувствительность к регистру.

  • 0
    Да, но возможно ли сохранить «Файл» и «Файл»? и не получить это как дублированную запись?

Ещё вопросы

Сообщество Overcoder
Наверх
Меню