-2

このクエリを実行すると:

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

このエラーが発生します:

SQL構文にエラーがあります。'の近くで使用する正しい構文については、MySQLサーバーのバージョンに対応するマニュアルを確認してください。1行目のsmspq'

ただし、このクエリは機能します。

SELECT * FROM `database` . `table`

なんで?

4

2 に答える 2

1

サブクエリにエイリアスを追加したい場合は、オプションでasに.置き換えるASか、単に削除します。.AS

SELECT * 
FROM (SELECT `db` 
      FROM site 
      WHERE `url`='$site')  smspq
于 2012-10-28T06:01:22.457 に答える
0

これはSQLの動作方法ではありません。どのデータベースでどのテーブルで作業したいかを明確に述べる必要があります。

あなたはによって最も好きなデータベースを設定することができます

USE mydatabase;

テーブルへのすべてのリクエストはそのデータベースに渡されます。

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

唯一の方法は、準備と実行(ドキュメントを参照)を使用することですが、単純なコマンド(SELECT、UPDATE、...)では、その方法で目的の目標を達成することはできません。

アップデート

クエリを分割する必要があります。

最初のクエリ

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

2番:

USE $db_from_site;
SELECT * FROM table;

($のため、phpから呼び出されると思います; o))

于 2012-10-28T06:12:14.083 に答える