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?


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);

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


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.



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.


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.


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';

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


OP zażądał MySQL lub MySQL / PHP.
starryknight64
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.