Czy istnieje polecenie MySQL do konwersji ciągu znaków na małe litery?

123

Mam bazę danych MySQL ze słowami kluczowymi, które obecnie mają różne wielkości liter. Chcę jednak przekonwertować je wszystkie na małe litery. Czy jest do tego proste polecenie, używając MySQL lub MySQL i PHP?

Thomas Owens
źródło
Wydaje mi się, że używasz również zrzutu od znajomego, który uznał, że dobrym pomysłem byłoby przechowywanie nazw użytkowników z dużymi literami.
Buffalo,

Odpowiedzi:

248
UPDATE table SET colname=LOWER(colname);
Paul Dixon
źródło
jeśli sortowanie kolumny jest ustawione na ascii_bin, czy nie spowoduje to automatycznego przekonwertowania wszystkiego na małe litery, czy się mylę?
oldboy
28

Tak, funkcja to LOWER () lub LCASE () (obie robią to samo).

Na przykład:

select LOWER(keyword) from my_table
Jon Grant
źródło
12

SELECT LOWER(foo) AS foo FROM bar

Greg
źródło
9

Możesz użyć funkcji LOWER () lub LCASE ().

Można ich używać zarówno w kolumnach, jak i literałach łańcuchowych. na przykład

SELECT LOWER(column_name) FROM table a;

lub

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

LCASE () można zastąpić LOWER () w obu przykładach.

dmanxiii
źródło
1

Po prostu użyj:

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

lub

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

Obie funkcje będą działać tak samo.

Vi8L
źródło
0

Ciekawe, że nazwa pola została zmieniona i jeśli odwołasz się do niej w funkcji, nie otrzymasz jej wartości, chyba że podasz mu alias (może to być jego własna nazwa)

Przykład: używam funkcji, aby dynamicznie uzyskać wartość nazwy pola:

function ColBuilder ($field_name) {

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

}

moje zapytanie brzmi: SELECT LOWER (itemID),… itd.

trzeba było zmienić na: SELECT LOWER (itemID) as itemID ,… itd.

HD FrenchFeast
źródło
To nie brzmi jak odpowiedź, czy?
Dieter Meemken
uzupełnia odpowiedź, ostrzegając, że użycie LOWER () w określonych sytuacjach może nie dać oczekiwanego rezultatu bez dodatkowego aliasingu.
HD FrenchFeast,
-3

użyj LOWERfunkcji do konwersji danych lub ciągów małymi literami.

select LOWER(username) from users;

lub

select * from users where LOWER(username) = 'vrishbh';
uma
źródło
6
Co to dodaje, czego nie było w odpowiedziach sprzed pięciu lat ?
Andrew
-6

Wierzę w php, którego możesz użyć

strtolower() 

więc możesz utworzyć php, aby odczytać wszystkie wpisy w tabeli, a następnie użyć tego polecenia, aby wydrukować je z powrotem jako małe litery

Gryzoń43
źródło
OP zażądał MySQL lub MySQL / PHP.
starryknight64