为什么这个MySQL查询失败了?

时间:2012-10-28 05:58:59

标签: mysql sql

执行此查询时:

SELECT * FROM (SELECT `db` FROM site WHERE `url`='$site') . smspq

我收到此错误:

  

您的SQL语法有错误;检查与您的MySQL服务器版本对应的手册,以便在'附近使用正确的语法。 smspq'在第1行

此查询有效:

SELECT * FROM `database` . `table`

为什么?

2 个答案:

答案 0 :(得分:1)

也许您想在子查询上添加别名,如果是这样,请将.替换为AS,或者只删除. AS 可选

SELECT * 
FROM (SELECT `db` 
      FROM site 
      WHERE `url`='$site')  smspq

答案 1 :(得分:0)

这不是SQL的工作方式。您必须清楚地说明您希望在哪个数据库中使用哪个表。

您可以通过

设置最喜欢的数据库
USE mydatabase;

并且对表的每个请求都将传递给该数据库。

SELECT * FROM mytable;
SELECT * FROM mydatabase.mytable; -- same as above because of USE mytable;

唯一的方法是使用Prepare and Execute(查看文档),但是使用普通命令(SELECT,UPDATE,...)就无法达到预期的目标

更新

您必须拆分查询:

第一次查询

USE mycommondb;
SELECT `db` FROM site WHERE `url`='$site';

第二

USE $db_from_site;
SELECT * FROM table;

(因为$我认为它将从php调用; o))