Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/71.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_Sql_Select - Fatal编程技术网

使用临时表不起作用-MYSQL

使用临时表不起作用-MYSQL,mysql,sql,select,Mysql,Sql,Select,我的目标是优化select查询,该查询根据单词的相关性进行排序 而不是搜索整个数据库两次,我在这里做了这个查询 $query = "SELECT * INTO #TEMP_TABLE " . "FROM cron_video ". "where id LIKE '%" . $searchString . "%' " . "union all " .

我的目标是优化select查询,该查询根据单词的相关性进行排序

而不是搜索整个数据库两次,我在这里做了这个查询

$query = "SELECT * INTO #TEMP_TABLE " .
                     "FROM cron_video ".
                     "where id LIKE '%" . $searchString . "%' " .
                     "union all " .
                     "SELECT * " .
                     "FROM #TEMP_TABLE ".
                     "WHERE id LIKE '". $searchString . "%' " ;     
但它给出了错误的定义

SQL错误1:您的SQL语法有错误;请查看与MySQL服务器版本对应的手册,以获取第1行“”附近要使用的正确语法


在运行查询之前使用“创建临时表”(定义适合您需要的结构)

此外,为了保持一致性,请仅将表命名为a-zA-Z_-


另外,请将您的查询作为一个整体提供给MySQL,包括换行符,这样将来调试会更容易,即“第6行出错”,而不是“第1行出错”(因为将始终只有一行输入MySQL。

在运行时创建的临时表…所以请编写

创建临时表
…语法和
插入到

创建表时可以使用临时关键字。临时关键字 表仅对当前连接可见,并且已删除 当连接关闭时自动执行。这意味着 不同的

例如

CREATE TEMPORARY TABLE tmp_film (
`id` INT UNSIGNED NOT NULL AUTO_INCREMENT,
`name` VARCHAR(50),
`last_updated_on` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
PRIMARY KEY(`id`)
)ENGINE=HEAP DEFAULT CHARSET=latin1;

INSERT INTO tmp_film(`name`) VALUES ('Keshav');

SELECT * FROM tmp_film;

临时表将在运行时生成…从表中选择时是否真的可以选择到表中?@user714965 ya我现在明白了,但是如何优化查询而不是两次从完整表中选择*。