
はじめまして。php5とpostgresを使って、ブラウザで都道府県をセレクトで複数選択(prefecture[])して、postgresに
select city from city_table where p_id='prefecture';
としているのですが、結果を出力できません。
print_rで見たところprefectureに複数選択した都道府県のidが配列として入っていることは確認しております。
where句に配列を入れて検索するにはどうすれば良いのでしょうか?
よろしくお願いいたします。
No.1ベストアンサー
- 回答日時:
WHERE句の書き方が違うと思います。
複数の条件であれば = ではなく、IN を使います。
WHERE p_id IN (条件1, 条件2, …)
この回答への補足
ご回答ありがとうございます。
さっそく試してみたのですが、やはりselectしません。
ちなみにp_idを配列(p_id[])ではなく、要素(p_id)としてhtmlで受け取るとselectします。
どうもwhere p_id =ではなくwhere p_id INとしても配列の中の要素が取り出されてないように感じるのですが。。。
phpでforeachとかarray_mapなども使ってみてるのですが、うまくいかない状況です(泣
No.4
- 回答日時:
まあ、SQLでやるならの例を示しましたが、No3さんの指摘どおり複数選択(prefecture[])したSQLが複雑で、SQLが長くなる、1行じゃどうにもならない(prefecture[]の作り方によります。
)等の弊害があるのであれば、prefectureした結果を配列に格納してそれを元に動的SQLを作成する方法は有ります。ケースバイケースですね。
この回答への補足
動的SQLをググってみました。
書店に行って記述のある本も探してみましたが・・・
私には難しすぎます(泣
難度の高すぎることをしようとしているのでしょうか。。。
No.3
- 回答日時:
DB上は単純な構造(配列でない)の列で、アプリケーション中は配列ということですよね?
複数のRDBMSの使用経験があり、いくつかのRDBMSでは専門的な知識を持っていますが、アプリケーション中の配列の各要素を取り出して、DB上の列と条件を評価するといったことをサポートしているRDBMSは、私の知る限りは存在しませんが?
この回答への補足
アドバイスありがとうございます。
例えば、カーセンサー(http://www.carsensor.net/)を見ると車のタイプ・特徴から選ぶでname="BLST[]"に複数のvalueが渡されています。
配列の中の要素を取り出してselectする方法なら可能のように思えるのです。
追記
作りたいアプリケーションは不動産情報(http://www.athome.co.jp/Haht_atweb/hsrun.exe/atw …)のようなものです。
No.2
- 回答日時:
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Access(アクセス) アクセス where句を使用して複数条件抽出をするには 2 2022/08/29 13:24
- MySQL 下記の問合せを行うクエリを、PhpMyAdminで作成して実行せよ。 日本の全市区町村を人口密度が低 1 2023/06/18 19:51
- MySQL 書籍の内容はまともでしょうか? 1 2023/01/22 03:07
- Excel(エクセル) PHPプログラムをエクセルに張り付けると検索ボックスがでてくる! 3 2022/05/08 07:10
- MySQL うまくいきません教えてくださいお願いしますSQLです。クエリ構文です。 1 2023/07/07 12:39
- MySQL SQLです。こんな感じですか?あってますか? うまくいきません教えてくださいお願いします 1 2023/07/08 15:27
- MySQL PhpMyAdminで作成して実行せよ。 東京23区を、皇居を中心とした4つのエリア(南東, 南西, 1 2023/06/11 11:58
- MySQL 共通点はあります。何が違うのでしょうか? 1 2023/01/27 05:22
- MySQL 下記の問合せを行うクエリを、PhpMyAdminで作成して実行せよ。 神奈川県の市区町村の一覧。ただ 3 2023/05/01 18:01
- SQL Server [SQLServer] テーブル名からカラム名を取得する 1 2022/08/23 21:20
このQ&Aを見た人はこんなQ&Aも見ています
-
一回も披露したことのない豆知識
あなたの「一回も披露したことのない豆知識」を教えてください。
-
字面がカッコいい英単語
あなたが思う「字面がカッコいい英単語」を教えてください。
-
歩いた自慢大会
「めちゃくちゃ歩いたエピソード」を教えてください。
-
はじめての旅行はどこに行きましたか?
記憶の中で1番昔の旅行先とエピソードを教えてください。
-
自分用のお土産
国内や海外に旅行へ行った時、自分用のお土産ってどれくらい買いますか?
-
select文のwhere句に配列を入れて検索したい
MySQL
-
配列に指定した値が含まれているものを抽出する方法
PostgreSQL
-
Accessのテーブルのフィールドに式を入れる方法
Access(アクセス)
-
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・昔のあなたへのアドバイス
- ・字面がカッコいい英単語
- ・許せない心理テスト
- ・歩いた自慢大会
- ・「I love you」 をかっこよく翻訳してみてください
- ・ゆるやかでぃべーと タイムマシンを破壊すべきか。
- ・はじめての旅行はどこに行きましたか?
- ・準・究極の選択
- ・この人頭いいなと思ったエピソード
- ・「それ、メッセージ花火でわざわざ伝えること?」
- ・ゆるやかでぃべーと すべての高校生はアルバイトをするべきだ。
- ・【お題】甲子園での思い出の残し方
- ・【お題】動物のキャッチフレーズ
- ・人生で一番思い出に残ってる靴
- ・これ何て呼びますか Part2
- ・スタッフと宿泊客が全員斜め上を行くホテルのレビュー
- ・あなたが好きな本屋さんを教えてください
- ・かっこよく答えてください!!
- ・一回も披露したことのない豆知識
- ・ショボ短歌会
- ・いちばん失敗した人決定戦
- ・性格悪い人が優勝
- ・最速怪談選手権
- ・限定しりとり
- ・性格いい人が優勝
- ・これ何て呼びますか
- ・チョコミントアイス
- ・単二電池
- ・初めて自分の家と他人の家が違う、と意識した時
- ・「これはヤバかったな」という遅刻エピソード
- ・ゴリラ向け動画サイト「ウホウホ動画」にありがちなこと
- ・泣きながら食べたご飯の思い出
- ・一番好きなみそ汁の具材は?
- ・人生で一番お金がなかったとき
- ・カラオケの鉄板ソング
- ・自分用のお土産
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
スペースを検索したい
-
WHERE条件の最終桁のスペースに...
-
顧客データベースを作る場合、...
-
末尾の全角スペースの削除
-
ストアドの戻り値で配列を返す方法
-
外部結合で取得した項目にNVL関数
-
差し込み後、元データを変更し...
-
フィルターかけた後、重複を除...
-
エクセルで最後の文字だけ置き...
-
SQLで特定の項目の重複のみを排...
-
エクセルの関数について教えて...
-
SELECT 文 GROUP での1件目を...
-
外部参照してるキーを主キーに...
-
【VB.NET】日付型の列にNULLを...
-
SQLで列名を変数にできないでし...
-
1日に1人がこなせるプログラム...
-
処理件数を非表示にしたい
-
EXISTSを使ったDELETE文
-
JANコードとPOSコードは同じ?
-
列のヘッダーを含めるのをデフ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
スペースを検索したい
-
あいまい検索で英文字の全角半...
-
顧客データベースを作る場合、...
-
末尾の全角スペースの削除
-
ストアドの戻り値で配列を返す方法
-
SQLServer2005のストアドプロシ...
-
WHERE条件の最終桁のスペースに...
-
select文のwhere句に配列を入れ...
-
INSERT文などの列名などの半角...
-
外部結合で取得した項目にNVL関数
-
アンケートメールをACCESSに取...
-
ORACLEの「DECODE」と同じ意味...
-
Trimの使い方
-
access2007のvbaの配列で配列に...
-
管理工学研究所のデーターベー...
-
MYSQL 右埋め 半角スペース
-
可変長多次元配列でのソートに...
-
EXCELのVBA NULL、スペ...
-
簡単なクエリーの高速化
-
ストアドプロシジャで配列
おすすめ情報