- ベストアンサー
特定のフィールドの文字列を取得する方法
- 特定のフィールドの文字列を取得するための方法について初心者向けに解説します。
- 取得した文字列を配列に格納する方法をPHPを使用して説明します。
- MySQLに登録済みのデータから重複しない文字列のみを取り出して配列に格納する方法を紹介します。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
前回も書きましたがDISTINCTをつかってみては? SELECT DISTINCT hogehoge FROM テーブル名 また、これも前回書きましたが重複が多く発生するようなものと いうのは、不特定なものではなく一定数のリストから選ぶ 場合がおおいかと。 たとえば都道府県名なんて、将来的に変わる可能性はあっても、 47個(プラス不明などをつくっても48個)しかありませんね。 であれば、都道府県マスターテーブルをつくっておいて、 JOINして使うのが普通です。 SQLをやるからには最終的には避けて通れないので、 一度「正規化」について学習なさることをお勧めします。
その他の回答 (1)
- yambejp
- ベストアンサー率51% (3827/7415)
なにを聞きたいのかよくわかりません。 phpからmysqlへの接続方法がわからないのでしょうか? であれば、基本が理解できていないのでここで一から解説することは 現実的ではありません。参考書などで調べてください もしくは接続方法はわかるが、今回の事例がわからないのでしょうか? であれば、テーブル構成がいまひとつよくわかりません。 とりあえずDISTINCTやGROUP BYなどでユニークなデータをとるのが 現実的でしょうか。 ただ正規化を考えれば、マスターデータを別テーブルでもつような 運用が普通のような気がしますが・・・
補足
ご回答有難うございます。 PHPからmysqlへの接続等は解ります。 テーブルの構成としては例としては、 名前(name),都道府県(area),電話番号(tel)... のような構成です。 わからないのは都道府県の部分なのですが、実際に都道府県であれば 簡単に作れるのですが、都道府県(area)の部分が、色々な文字列になっています。 レコード数が数万とあるので、このareaのフィールドのみを抽出して重複している文字列は1つと考えて配列に格納したいと思っています。 説明が下手ですみませんでした。
お礼
重複なしで抽出する事ができました! SELECT DISTINCT hogehoge FROM テーブル名 本当に有難うございます。 難しいけど、覚えれば便利そうなSQLについてもっと勉強したいと思います。
補足
ご回答有難うございます。 ご指摘通り下記の記述を調べて使ってみます。 SELECT DISTINCT hogehoge FROM テーブル名 SQLに関して、全くの初心者なのでもう少し勉強してみます!