Есть ли команда 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 () в обоих примерах.



1

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

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

или

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

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


0

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

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

function ColBuilder ($field_name) {

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

}

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

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


Это не похоже на ответ, или?
Дитер Мемкен

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

-3

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

select LOWER(username) from users;

или

select * from users where LOWER(username) = 'vrishbh';

6
Что это добавляет, чего не было в ответах пятилетней давности ?
Эндрю

-6

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

strtolower() 

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


OP запросил MySQL или MySQL / PHP.
starryknight64
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.