0

でユーザーから動的に取得する製品のコストとアイテム番号を取得しようとしていますjsp。ユーザーが製品を選択できる 3 つのテーブルのデータを使用しています。したがって、私が知っているのは、これら3つのテーブルのいずれかに存在する可能性のある製品名だけなので、基本的にテーブル名はわかりません。製品をとservletとともに表示したい場所に製品を渡しています。次のクエリを使用しましたが、エラー メッセージしか表示されませんcostitemno

ResultSet rs=st.executeQuery
("SELECT * FROM indi.COLUMNS WHERE column_name ='" +  previousItems + "');");

ここで、inde はスキーマ名で、previousitem は jsp でユーザーから動的に取得する製品名です。SQL構文が間違っているというエラーメッセージが表示されます。以下はエラーメッセージです

javax.servlet.ServletException: com.mysql.jdbc.exceptions.MySQLSyntaxErrorException:
テーブル 'indi.columns' が存在しません

4

2 に答える 2

1

列名がわからない列の値を取得する場合は、列名のコマンドがあり、既存のテーブルのすべての列名が表示されます

 SELECT DISTINCT TABLE_NAME 
FROM INFORMATION_SCHEMA.COLUMNS
WHERE COLUMN_NAME IN ('COLOM_NAME_TO_SEARCH')
AND TABLE_SCHEMA='YOUR_DATABASE_NAME'; 

参考になると思います。

于 2012-12-21T06:52:02.660 に答える
1

次のクエリで名前を表にできます。

SELECT
    `TABLE_NAME`
FROM 
    `information_schema`.`TABLES`
WHERE
    `TABLE_SCHEMA` = [DATABASE_NAME]

次に、各テーブルをクエリできます...

于 2012-12-21T06:20:42.093 に答える