0

クエリ内で database() を使用するにはどうすればよいですか? これが私がやろうとしていることの例です:

select database();

「my_table」を返します

SELECT * FROM INFORMATION_SCHEMA.STATISTICS where 
table_schema = database() and 
table_name = 'my_table' AND index_name = 'my_index' LIMIT 1;

動作しません

SELECT * FROM INFORMATION_SCHEMA.STATISTICS where 
table_schema = (select database()) and 
table_name = 'my_table' AND index_name = 'my_index' LIMIT 1;

動作しません

SELECT * FROM INFORMATION_SCHEMA.STATISTICS where 
table_schema = 'my_table' and 
table_name = 'my_table' AND index_name = 'my_index' LIMIT 1;

魔法のように機能します

問題は、クエリ内で database() を評価してクエリを動的にするにはどうすればよいかということです。特定のインデックスが既に存在するかどうかを確認するクエリが必要なので、スクリプトはそれを追加する必要があるかどうかを認識します。

4

0 に答える 0