mysql - MySQL写动态查询出错

标签 mysql database rdbms sequelpro

我是 RDBMS 的新手,我想从五个表之一中获取一行,表的名称是另一个表的一个字段的值。因此,我尝试将一个查询中的值存储在一个变量中,然后在名称存储在变量中的表中再次使用该值查询。我正在 MySQL 中编写查询。我遇到语法错误。

这是我正在编写的查询语句。

DECLARE @vcTemp VARCHAR(40)
SELECT unit_test_result.*, @vcTemp = unit_test.name
  FROM unit_test_result, unit_test
  WHERE unit_test_result.test_run_id = 3 && unit_test.id = unit_test_result.unit_test_id
SELECT @vcTemp.* FROM @vcTemp

但我收到以下错误:

You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'DECLARE @vcTemp VARCHAR(40) SELECT unit_test_result.*, @vcTemp = unit_test.name ' at line 1

有人可以帮我解决语法问题吗?谢谢。

最佳答案

SQL 不支持动态表名称。如果这些查询由其他语言的程序(即 PHP 脚本)运行,那么最简单的事情就是执行两个查询 - 一个获取表名称,另一个获取实际数据。

不过,如果您仅限于使用 MySQL,那么使用存储过程可以做您想做的事情。这是一个示例:http://forums.mysql.com/read.php?98,126506,126598#msg-126598

关于mysql - MySQL写动态查询出错,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16594667/

相关文章:

mysql:涉及日历表的RIGHT JOIN查询速度问题

php - 我想从一个表格将数据发送到多个表中,但我选择的表不是其他表

node.js - 在 mongoose 中实现手动链接/引用

sql - 随着最近 NoSQL 数据库的盛行,我为什么要使用 SQL 数据库?

sql-server - SQL Server 和 Oracle 等产品是 "ORDBMS"的示例吗?

c# - 如何从Windows Phone访问MySQL?

php - 如何查找是否有新记录插入?

.net - 数据库表复制指南

java - 当每个请求可以到达多个服务器时,如何维护用户凭据

postgresql - rdbms 查询中语言标签(小标签集)的有效方法