Existe-t-il une commande MySQL pour convertir une chaîne en minuscules?

123

J'ai une base de données MySQL de mots-clés qui sont actuellement mixtes. Cependant, je souhaite les convertir tous en minuscules. Existe-t-il une commande simple pour le faire, soit en utilisant MySQL ou MySQL et PHP?

Thomas Owens
la source
J'imagine que vous utilisez également un vidage d'un ami qui a pensé que ce serait une bonne idée de stocker les noms d'utilisateur avec des lettres majuscules.
Buffalo

Réponses:

248
UPDATE table SET colname=LOWER(colname);
Paul Dixon
la source
si le classement d'une colonne est défini sur ascii_bin, cela ne convertira-t-il pas automatiquement tout en minuscules ou est-ce que je me trompe?
oldboy
28

Oui, la fonction est LOWER () ou LCASE () (ils font tous les deux la même chose).

Par exemple:

select LOWER(keyword) from my_table
Jon Grant
la source
12

SELECT LOWER(foo) AS foo FROM bar

Greg
la source
9

Vous pouvez utiliser les fonctions LOWER () ou LCASE ().

Ceux-ci peuvent être utilisés à la fois sur des colonnes ou des chaînes littérales. par exemple

SELECT LOWER(column_name) FROM table a;

ou

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

LCASE () peut être remplacé par LOWER () dans les deux exemples.

dmanxiii
la source
1

Utilisez simplement:

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

ou

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

Les deux fonctions fonctionneront de la même manière.

Vi8L
la source
0

Intéressant de noter que le nom du champ est renommé et que si vous le référencez dans une fonction, vous n'obtiendrez sa valeur que si vous lui donnez un alias (qui peut être son propre nom)

Exemple: j'utilise une fonction pour obtenir dynamiquement une valeur de nom de champ:

function ColBuilder ($field_name) {

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

}

ma requête étant: SELECT LOWER (itemID),… etc.

doit être changé en: SELECT LOWER (itemID) comme itemID ,… etc.

HD FrenchFeast
la source
Cela ne ressemble pas à une réponse, ou?
Dieter Meemken
il complète la réponse, avertissant que l'utilisation de LOWER () dans des situations spécifiques peut ne pas fournir le résultat attendu sans alias supplémentaire.
HD FrenchFeast
-3

utilisez la LOWERfonction pour convertir les données ou la chaîne en minuscules.

select LOWER(username) from users;

ou

select * from users where LOWER(username) = 'vrishbh';
uma
la source
6
Qu'est-ce que cela ajoute qui ne figurait pas dans les réponses de cinq ans ?
Andrew
-6

Je crois en php que vous pouvez utiliser

strtolower() 

afin que vous puissiez créer un php pour lire toutes les entrées du tableau, puis utiliser cette commande pour les imprimer en minuscules

Rongeur43
la source
L'OP a demandé MySQL ou MySQL / PHP.
starryknight64