4

我有多个在数据库表中写入数据的 Web 服务。对于特定字段,我想自动将大写字符串转换为小写字符串。是否有执行此任务的任何 mysql 函数?

假设这是表:

id | name | language

有时,在语言字段中,Web 服务会写入大写字符串 (IT)。我想直接在 MySQL 中将其转换为小写字符串(“it”)。

谢谢

4

2 回答 2

29

在表上定义触发器

CREATE TRIGGER lcase_insert BEFORE INSERT ON my_table FOR EACH ROW
SET NEW.language = LOWER(NEW.language);

CREATE TRIGGER lcase_update BEFORE UPDATE ON my_table FOR EACH ROW
SET NEW.language = LOWER(NEW.language);

然后更新现有数据:

UPDATE my_table SET language = LOWER(language);
于 2012-10-09T08:45:28.150 回答
3

你可以使用:

LOWER("some_string");

请参阅:降低

你的意思是这样的吗。。

补充:在表格中插入数据时,您可以转换为小写,例如:

INSERT INTO your_table (name, language)
    VALUES ( "Some Name", LOWER( "SOME VALUE" ) );

或者更好的解决方案是将要插入到语言字段的值从服务器端脚本转换为小写,然后再插入到 db。

您可以使用触发器进行自动转换,但我建议在从表中获取数据时使用 LOWER() 函数,例如:

SELECT LOWER(language) AS language FROM your_table_name
于 2012-10-09T07:37:29.403 回答