Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/79.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/jsf/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Mysql 将多个DB字段更改为小写_Mysql_Sql - Fatal编程技术网

Mysql 将多个DB字段更改为小写

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

使用phpMyAdmin,我可以使用以下SQL将table.field mytable.Site中的所有值更改为小写

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会提高我的血压。哈哈-很高兴知道有更好的程序;我不知道为什么它会给你这个错误,这些查询应该单独运行。它对我有用。。