Есть ли команда MySQL для преобразования строки в нижний регистр?

123

У меня есть база данных MySQL ключевых слов, которые в настоящее время имеют смешанный регистр. Однако я хочу преобразовать их все в нижний регистр. Есть ли простая команда для этого с использованием MySQL или MySQL и PHP?

Томас Оуэнс
источник
Я думаю, вы также используете дамп от друга, который подумал, что было бы неплохо хранить имена пользователей с заглавными буквами.
Buffalo

Ответы:

248
UPDATE table SET colname=LOWER(colname);
Пол Диксон
источник
Если для столбца установлено значение сортировки ascii_bin, не будет ли это автоматически преобразовывать все в нижний регистр, или я ошибаюсь?
oldboy
28

Да, это функция LOWER () или LCASE () (они обе делают одно и то же).

Например:

select LOWER(keyword) from my_table
Джон Грант
источник
9

Вы можете использовать функции LOWER () или LCASE ().

Их можно использовать как для столбцов, так и для строковых литералов. например

SELECT LOWER(column_name) FROM table a;

или

SELECT column_name FROM table a where column = LOWER('STRING')

LCASE () можно заменить на LOWER () в обоих примерах.

dmanxiii
источник
1

Просто используйте:

UPDATE `tablename` SET `colnameone`=LOWER(`colnameone`);  

или

UPDATE `tablename` SET `colnameone`=LCASE(`colnameone`);

Обе функции будут работать одинаково.

Vi8L
источник
0

Интересно отметить, что имя поля переименовано, и если вы ссылаетесь на него в функции, вы не получите его значение, если не дадите ему псевдоним (это может быть его собственное имя)

Пример: я использую функцию для динамического получения значения имени поля:

function ColBuilder ($field_name) {

While ($result = DB_fetch_array($PricesResult)) {
$result[$field_name]
}

}

мой запрос: SELECT LOWER (itemID),… и т. д.

необходимо изменить на: SELECT LOWER (itemID) as itemID ,… и т. д.

HD FrenchFeast
источник
Это не похоже на ответ, или?
Дитер Мемкен
он завершает ответ, предупреждая, что использование LOWER () в определенных ситуациях может не дать ожидаемого результата без дополнительного псевдонима.
HD FrenchFeast
-3

используйте LOWERфункцию для преобразования данных или строки в нижний регистр.

select LOWER(username) from users;

или

select * from users where LOWER(username) = 'vrishbh';
Ума
источник
6
Что это добавляет, чего не было в ответах пятилетней давности ?
Эндрю
-6

Я верю в php, который можно использовать

strtolower() 

чтобы вы могли заставить php читать все записи в таблице, а затем использовать эту команду, чтобы распечатать их в нижнем регистре

Rodent43
источник
OP запросил MySQL или MySQL / PHP.
starryknight64