Проблема с регистром символов в запросе
Когда я ввожу слово "гитара" из базы SQL считываются только те entries, где слово "гитара" написано с маленькой буквы.
1. Вид данных читаемого столбца VARCHAR (хотя пробовал и TEXT)
2. регулярное выражение, кот. я использую REGEXP '.*$переменная.*'
ПРОБЛЕМА: ЗАПРОС ЧУВСТВИТЕЛЕН К РЕГИСТРУ СИМВОЛОВ.
ВОПРОС: КАК ОТКЛЮЧИТЬ ЧУВСТВИТЕЛЬНОСТЬ К РЕГИСТРУ
Когда я ввожу слово "гитара" из базы SQL считываются только те entries, где слово "гитара" написано с маленькой буквы.
Разумеется. Под чувствительностью к регистру в данном случае подразумевается чувствительность, точнее, нечувствительность самого SQL: можно написать "select", "Select", "SELECT", "sELeCt" - будет воспринято как одна и та же команда. Данные же храняться в том виде, в каком они внесены, иначе это была бы не база данных, а помойка.
Для поиска без учета регистра в SQL предусмотрены функции, вроде upper или lower. Кури доку.
Разумеется. Под чувствительностью к регистру в данном случае подразумевается чувствительность, точнее, нечувствительность самого SQL: можно написать "select", "Select", "SELECT", "sELeCt" - будет воспринято как одна и та же команда. Данные же храняться в том виде, в каком они внесены, иначе это была бы не база данных, а помойка.
Для поиска без учета регистра в SQL предусмотрены функции, вроде upper или lower. Кури доку.
Не знаю как в MySQL, а в MSSQL под чувствительностью к регистру понимается как раз чувствительность к регистру в котором хранятся данные.
Этот параметр задается при установке.
Конечно хранится все в том регистре, в котором вводилось, но при поиске может учитываться регистр а может нет.
Например по запросу
select *
from instr
where name='Гитара'
будут выведены записи ГитарА, ГИТАРА, гитара и т.д.
Конечно можно принудительно приводить к нужному регистру.
Не знаю как в MySQL, а в MSSQL под
В MySql в последних версиях поддерживаются разные кодировки, в них и задется чувствительность к регистру.
cp1251 general_ci - не чувствительна к регистру
cp1251 general_cs - чувствительна к регистру