
お世話になっております。
store_table 内にある 特定のkaiin_no ('123456','234567') で抽出して
デスクトップにsample.csvとして保存したいと思い
下記SQLをphpMyadmin で走らせたのですが文法エラーになります。
SELECT * FROM store_table WHERE kaiin_no IN ('123456','234567') into outfile 'c:/Users/pc/Desktop/sample.csv' fields terminated by ',' enclosed by '"' escaped by '"' lines terminated by '\r\n';
SQLの記載方法についてご教示頂けないでしょうか?
宜しくお願い致します。<(_ _)>
No.5ベストアンサー
- 回答日時:
>大事な情報が欠けていました。
PostgreSQL8.8.4を利用しています。おっと。
PostgreSQLなら、select into outfileが使えないですね。
でもPostgreSQLにバージョン8.8.4は存在しないような。
ご教示ありがとうございます。
情報が間違えておりました。申し訳ありません。
PostgreSQL 8.4.8
phpPgAdmin 3.5.3
でございます。
PostgreSQLなら、select into outfileが使えないとの事
色々調べたところ下記サイトを参照したところ
https://www.postgresqltutorial.com/export-postgr …
COPY (SELECT * FROM store_table WHERE kaiin_no IN ('123456','234567') ) TO 'C:\tmp\persons_partial_db.csv' DELIMITER ',' CSV HEADER;
で文法エラーが出ました。
そこでシンプルにWHERE kaiin_no IN ('123456','234567') を削除してテストしたら
ERROR: must be superuser to COPY to or from a file
HINT: Anyone can COPY to stdout or from stdin. psql's \copy command also works for anyone.
となりました。
スーパーバイザー権限の付与が必要との事。
付与の仕方はどうすればよいでしょう?
<(_ _)>
No.4
- 回答日時:
debian 10にmysql 8.0.25を導入して、下記CSV出力を試したら、問題なく実行されました。
SELECT * FROM user WHERE user IN ('root','mysql') into outfile '/var/lib/mysql-files/sample.csv' fields terminated by ',' enclosed by '"' escaped by '"' lines terminated by '\r\n';
文法エラーになるんだったら、へんな文字(全角空白とか)が混入してるのでは。

No.3
- 回答日時:
>LINE 1: ... store_table WHERE kaiin_no ('123456'
「IN」が無いからでは。質問文にあるので補足時の誤りかも。
ご教示ありがとうございます。
INを入れてもダメでした。
ERROR: syntax error at or near "into"
LINE 1: ...ore_table WHERE kaiin_no in ('123456','234567') into OUTFI...
^
大事な情報が欠けていました。
PostgreSQL8.8.4を利用しています。
<(_ _)>
No.2
- 回答日時:
ファイルでの出力権限が足りないのでは。
文法誤りでなく。エラーメッセージを補足したら、回答を得られるかも。
ご教示ありがとうございます。
エラー内容が 下記でして
ERROR: syntax error at or near "INTO"
LINE 1: ... store_table WHERE kaiin_no ('123456'。。。
でkaiin_noにチェックがありました。
Can't create/write to file ',,,, ではなかったのです。
<(_ _)>
No.1
- 回答日時:
ど素人です。
気になったのはそのフィールドのデータ形式は数値ではなく文字列なのでしょうか?
⇒先頭に 0 を付けたい時に文字列にする事もありますからそうなっている可能性も考えましたけど。
ご返信ありがとうございます。
特定のIDを検索して、その結果をCSVで書き出すことを考えています。
以下で抽出はできたのですが、CSV書き出しが出来ない状態です。
SELECT * FROM store_table WHERE kaiin_no IN ('123456','234567') ;
なので、該当するレコードの抽出となりますので数値と文字列が混ざっています。<(_ _)>
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
MYSQLサービス停止時にWindows...
-
副問合せにLIKE文を使う方法は...
-
MySQLカラム名は日本語と英数字...
-
パスワード入力を省略したい
-
PHP+MySQLでCall to undefined ...
-
mysqlがインストールされている...
-
ODP.NETのバージョン確認
-
文字コードMS932(Windows-31J...
-
ERROR 1045 (28000) (using pas...
-
ユーティリティーとは?OPatch...
-
Column '' not found.
-
Btrieveのコンバートしたいので...
-
PHPで特定のレコードを取り出す
-
オラクルのデータ型・通貨について
-
SQLのVARCHARとVARCHAR2の違い
-
存在しているファイルがロード...
-
PHP+MySQL 4.1.20における文字...
-
MAMPでMySQLのパスが通らない
-
現在MySQLの特権ユーザー(root...
-
設定が更新されない
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
テーブル作成でエラーが出てき...
-
LIMIT で条件を満たしているの...
-
MySQL エラー Duplicate entry...
-
MySQLのテーブル作成でハイフン...
-
SQLで抽出してCSVで書き出した...
-
実行時エラー80004005
-
MYSQLサービス停止時にWindows...
-
削除した件数を取得
-
phpMyAdminについて
-
MySQL+PHPのエラーについて
-
MySQL のログ出力方法について ...
-
MySQLカラム名は日本語と英数字...
-
副問合せにLIKE文を使う方法は...
-
mysqlがインストールされている...
-
ODP.NETのバージョン確認
-
VBAで変数内に保持された二次配...
-
SQLのVARCHARとVARCHAR2の違い
-
プライマリーキーの昇順でソー...
-
Float型の時の計算結果がおかしい
-
ヌル値は記憶容量を必要としな...
おすすめ情報