当我执行此查询时:
SELECT * FROM (SELECT `db` FROM site WHERE `url`='$site') . smspq
我收到此错误:
您的 SQL 语法有错误;检查与您的 MySQL 服务器版本相对应的手册,以了解在 '. 第 1 行的 smspq'
但是,此查询有效:
SELECT * FROM `database` . `table`
为什么?
也许您想在子查询上添加别名,如果是这样,替换.
为AS
或仅删除.
asAS
是可选的
SELECT *
FROM (SELECT `db`
FROM site
WHERE `url`='$site') smspq
这不是 SQL 的工作方式。您必须清楚地说明您喜欢在哪个数据库中工作的表。
您可以通过以下方式设置最喜欢的数据库
USE mydatabase;
并且对表的每个请求都将传递到该数据库。
SELECT * FROM mytable;
SELECT * FROM mydatabase.mytable; -- same as above because of USE mytable;
唯一的方法是使用 Prepare 和 Execute(查看文档),但是使用普通命令(SELECT、UPDATE、...)您无法以这种方式达到您想要的目标
更新
您必须拆分查询:
第一次查询
USE mycommondb;
SELECT `db` FROM site WHERE `url`='$site';
第二:
USE $db_from_site;
SELECT * FROM table;
(因为 $ 我认为它将从 php 调用;o))