Чи є команда MySQL для перетворення рядка в малі регістри?


123

У мене є база даних MySQL з ключовими словами, які на даний момент є змішаним регістром. Однак я хочу перетворити їх у малі регістри. Чи є легка команда зробити це, використовуючи MySQL або MySQL та PHP?


Я думаю, ви також використовуєте дамп від друга, який вважав, що було б гарною ідеєю зберігати імена користувачів з великими літерами.
Буффало

Відповіді:


248
UPDATE table SET colname=LOWER(colname);

якщо встановлено зіставлення стовпця ascii_bin, то це автоматично не перетворює все на малі регістри чи я помиляюся?
oldboy

28

Так, функція - НИЗЬКА () або 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]
}

}

мій запит: ВИБІРТИ нижчий (itemID),… тощо.

потрібно змінити на: ВИБІРТЕ НИЖЕ (itemID) як itemID ,… тощо.


Це не звучить як відповідь, чи?
Дітер Мемкен

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

-3

використовувати LOWERфункцію для перетворення даних або рядків у малі регістри.

select LOWER(username) from users;

або

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

6
Що це додає, що не було у відповідях п'ятирічки ?
Андрій

-6

Я вірю в php, який ви можете використовувати

strtolower() 

тож ви можете зробити php для читання всіх записів у таблиці, а потім скористайтеся цією командою для їх друку назад як малі регістри


ОП запитувала MySQL або MySQL / PHP.
starryknight64
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.