Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/72.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 如何使用子查询的返回值名称创建数据库?_Mysql - Fatal编程技术网

Mysql 如何使用子查询的返回值名称创建数据库?

Mysql 如何使用子查询的返回值名称创建数据库?,mysql,Mysql,我想使用子查询的返回值名称创建数据库 CREATE DATABASE (SELECT (REPLACE( REPLACE( REPLACE( standard_name, ' ', '' ), '-', '' ), '_', '' )) FROM standard_master WHERE _id = 1) 我的子查询返回值 选择替换标准名称、、-, ,来自标准\u主机,其中\u id=1 标准01 创建数据库查询给我一个语法错误 您的SQL语法有错误;检查手册 对应于要使用的正确语法的Mar

我想使用子查询的返回值名称创建数据库

CREATE DATABASE (SELECT (REPLACE( REPLACE( REPLACE( standard_name, ' ', '' ), '-', '' ), '_', '' )) FROM standard_master WHERE _id = 1)
我的子查询返回值

选择替换标准名称、、-, ,来自标准\u主机,其中\u id=1

标准01

创建数据库查询给我一个语法错误

您的SQL语法有错误;检查手册 对应于要使用的正确语法的MariaDB服务器版本 在“选择替换标准名称”附近, 第1行的“-”、“"”


我假设您正试图通过从查询中获取数据库名称来创建数据库。您可以将变量用作:

声明一个变量并存储查询的输出 在动态sql中使用变量创建数据库。 例如:

SELECT @id := (REPLACE( REPLACE( REPLACE( standard_name, ' ', '' ), '-', '' ), '_', '' )) FROM standard_master WHERE _id = 1;
# database name is in the @id variable
SET @SQL = CONCAT('CREATE DATABASE ', @id);
PREPARE stmt FROM @SQL;
# execute the statement that you have created
EXECUTE stmt;
DEALLOCATE PREPARE stmt;
信用:我已经使用动态sql作为参考


希望它能回答您的问题。

您的问题是关于什么的,您真的是指数据库吗?如果是,什么不起作用?执行查询时您的查询说明了什么?问题已编辑。现在您了解了我的问题@joakimdanielsony您无法使用子查询执行此操作。数据库名称必须是字符串文字,您需要为此使用。您需要构建一个包含sql代码的字符串并执行它,请参阅