Mysql 将多个DB字段更改为小写
使用phpMyAdmin,我可以使用以下SQL将table.field mytable.Site中的所有值更改为小写Mysql 将多个DB字段更改为小写,mysql,sql,Mysql,Sql,使用phpMyAdmin,我可以使用以下SQL将table.field mytable.Site中的所有值更改为小写 UPDATE my_table SET Site=LOWER(Site) 我有无数个表都有这个字段,我想把它们都改成小写。是否有一个SQL命令可以做到这一点-最好将每个表中每个名为Site的字段都改为小写,而不必列出每个包含该字段的表?不完全是您想要的,但非常接近。在我的机器上测试过。 首先创建一个过程 delimiter // CREATE PROCEDURE test(I
UPDATE my_table SET Site=LOWER(Site)
我有无数个表都有这个字段,我想把它们都改成小写。是否有一个SQL命令可以做到这一点-最好将每个表中每个名为Site的字段都改为小写,而不必列出每个包含该字段的表?不完全是您想要的,但非常接近。在我的机器上测试过。 首先创建一个过程
delimiter //
CREATE PROCEDURE test(IN tbl CHAR(64))
BEGIN
SET @s = CONCAT('UPDATE ',tbl,' SET Site=LOWER(Site)' );
PREPARE stmt FROM @s;
EXECUTE stmt;
DEALLOCATE PREPARE stmt;
END
//
delimiter ;
CALL test('tableName')
以及查找具有特定列名的表:
SELECT TABLE_NAME
FROM INFORMATION_SCHEMA.COLUMNS
WHERE COLUMN_NAME IN ('Site')
AND TABLE_SCHEMA='YourDB';
用于调用过程
delimiter //
CREATE PROCEDURE test(IN tbl CHAR(64))
BEGIN
SET @s = CONCAT('UPDATE ',tbl,' SET Site=LOWER(Site)' );
PREPARE stmt FROM @s;
EXECUTE stmt;
DEALLOCATE PREPARE stmt;
END
//
delimiter ;
CALL test('tableName')
哇,太酷了;我不知道你可以像那样在phpMyAdmin中把脚本串在一起。不过,我收到了一个错误-错误:未知标点字符串@11 STR://SQL:delimiter//CREATE PROCEDURE testIN tbl CHAR64 BEGIN SET@s=CONCAT'UPDATE',tbl',SET Site=LOWERSite';从@s准备stmt;执行stmt;解除分配准备stmt;结束//分隔符;但也许我做错了;我想我应该粘贴整个脚本,并在一个过程中进行替换,对吗?谢谢。尝试一个更好的客户端,比如heidisql。Phpmyadmin会提高我的血压。哈哈-很高兴知道有更好的程序;我不知道为什么它会给你这个错误,这些查询应该单独运行。它对我有用。。