Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

Проблема с регистром символов в запросе

13K
18 октября 2005 года
komposter
1 / / 18.10.2005
Во всех мануалах по MySQL говорится, что по умолчанию запросы в MySQL не чувствительны к регистру символов, однако на своем сайте http://muz.by я встретился со след. проблемой:
Когда я ввожу слово "гитара" из базы SQL считываются только те entries, где слово "гитара" написано с маленькой буквы.
1. Вид данных читаемого столбца VARCHAR (хотя пробовал и TEXT)
2. регулярное выражение, кот. я использую REGEXP '.*$переменная.*'
ПРОБЛЕМА: ЗАПРОС ЧУВСТВИТЕЛЕН К РЕГИСТРУ СИМВОЛОВ.
ВОПРОС: КАК ОТКЛЮЧИТЬ ЧУВСТВИТЕЛЬНОСТЬ К РЕГИСТРУ
10
19 октября 2005 года
Freeman
3.2K / / 06.03.2004
Цитата:
Originally posted by komposter
Когда я ввожу слово "гитара" из базы SQL считываются только те entries, где слово "гитара" написано с маленькой буквы.


Разумеется. Под чувствительностью к регистру в данном случае подразумевается чувствительность, точнее, нечувствительность самого SQL: можно написать "select", "Select", "SELECT", "sELeCt" - будет воспринято как одна и та же команда. Данные же храняться в том виде, в каком они внесены, иначе это была бы не база данных, а помойка.

Для поиска без учета регистра в SQL предусмотрены функции, вроде upper или lower. Кури доку.

9.3K
17 ноября 2005 года
viv
21 / / 20.04.2005
Цитата:
Originally posted by Freeman
Разумеется. Под чувствительностью к регистру в данном случае подразумевается чувствительность, точнее, нечувствительность самого SQL: можно написать "select", "Select", "SELECT", "sELeCt" - будет воспринято как одна и та же команда. Данные же храняться в том виде, в каком они внесены, иначе это была бы не база данных, а помойка.

Для поиска без учета регистра в SQL предусмотрены функции, вроде upper или lower. Кури доку.



Не знаю как в MySQL, а в MSSQL под чувствительностью к регистру понимается как раз чувствительность к регистру в котором хранятся данные.
Этот параметр задается при установке.
Конечно хранится все в том регистре, в котором вводилось, но при поиске может учитываться регистр а может нет.
Например по запросу

select *
from instr
where name='Гитара'

будут выведены записи ГитарА, ГИТАРА, гитара и т.д.
Конечно можно принудительно приводить к нужному регистру.

4
17 ноября 2005 года
mike
3.7K / / 01.10.2002
Цитата:
Originally posted by viv
Не знаю как в MySQL, а в MSSQL под



В MySql в последних версиях поддерживаются разные кодировки, в них и задется чувствительность к регистру.

cp1251 general_ci - не чувствительна к регистру
cp1251 general_cs - чувствительна к регистру

Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог