Mariadb
我有一個返回結果的正確子查詢,但是當我將它用作“IN”子句時,我收到錯誤 1064
這一定是一個很簡單的問題,子查詢單獨返回結果但是複合查詢報告:
ERROR 1064 (42000):您的 SQL 語法有錯誤;檢查與您的 MariaDB 伺服器版本相對應的手冊,以獲取正確的語法,以便在第 1 行的 ’table where table in (select table_name from information_schema.tables where tab’ 附近使用
這是查詢:
select * from table where table in (select table_name from information_schema.tables where table_schema='my_database' limit 1);
我也沒有限制地嘗試過,這是我的第一次嘗試:
select * from table where table in (select table_name from information_schema.tables where table_schema='my_database');
你不能
SELECT
喜歡這樣,你動態SELECT
的表名。這就是為什麼它不起作用。子選擇有效,但是.. 嘗試用常量(即已知)名稱替換子選擇,但它仍然不起作用。對於這樣的事情,您要麼需要 if then else 流或動態 SQL,要麼在應用程序端執行。
table
是一個保留字,所以它不被認為是一個標識符,而是語法的一部分。如果你有一個 tabletable
和一個名為table
(confusing) 的列,你必須用像這樣的倒引號來引用它們:table
。盡量避免在表和列標識符上使用保留字,例如
my_table
ortable_name
。