是否有MySQL命令将字符串转换为小写?


123

我有一个目前混合大小写的MySQL关键字数据库。但是,我想将它们全部转换为小写。是否有使用MySQL或MySQL和PHP的简单命令来执行此操作?


我猜您也在使用一个朋友的转储,他认为用大写字母存储用户名是个好主意。
水牛城

Answers:


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)作为itemID,等等。


这听起来不像是答案,还是?
Dieter Meemken

它会完成答案,并警告在没有其他别名的情况下,在特定情况下使用LOWER()可能无法提供预期的结果。
HD FrenchFeast

-3

使用LOWER函数将数据或字符串转换为小写。

select LOWER(username) from users;

要么

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

6
这加了五年来答案中没有的东西吗?
安德鲁(Andrew)

-6

我相信您可以使用php

strtolower() 

因此,您可以制作一个php来读取表中的所有条目,然后使用该命令将它们打印回小写形式


OP请求了MySQL或MySQL / PHP。
starryknight64 '16
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.