質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
Ruby on Rails 5

Ruby on Rails 5は、オープンソースのWebアプリケーションフレームワークです。「同じことを繰り返さない」というRailsの基本理念のもと、他のフレームワークより少ないコードで簡単に開発できるよう設計されています。

MySQL

MySQL(マイエスキューエル)は、TCX DataKonsultAB社などが開発するRDBMS(リレーショナルデータベースの管理システム)です。世界で最も人気の高いシステムで、オープンソースで開発されています。MySQLデータベースサーバは、高速性と信頼性があり、Linux、UNIX、Windowsなどの複数のプラットフォームで動作することができます。

Q&A

解決済

1回答

381閲覧

カラム値と繰り返し照合して合致したら出力するためには?

kozica

総合スコア58

Ruby on Rails 5

Ruby on Rails 5は、オープンソースのWebアプリケーションフレームワークです。「同じことを繰り返さない」というRailsの基本理念のもと、他のフレームワークより少ないコードで簡単に開発できるよう設計されています。

MySQL

MySQL(マイエスキューエル)は、TCX DataKonsultAB社などが開発するRDBMS(リレーショナルデータベースの管理システム)です。世界で最も人気の高いシステムで、オープンソースで開発されています。MySQLデータベースサーバは、高速性と信頼性があり、Linux、UNIX、Windowsなどの複数のプラットフォームで動作することができます。

0グッド

0クリップ

投稿2018/07/30 02:39

編集2018/07/30 03:05

前提・実現したいこと

MySQLのDBに保存されたpersonal_logsテーブルの"macaddr"カラムにMacアドレスが、"data"カラムに個人情報が格納されています。
Railsを使いそのMacアドレスとWifi proveして取得してきたMacアドレスを照合して、合致すればそれに対応するpersonal_logsテーブルの"data"カラムの個人情報を出力するシステムを作ってます。

現段階として、wifi proveした様々なデータからMacアドレスを配列として取得しているところまで完了しています。
下記のような形です。

ruby

1data['observations'].map { |mac| mac['clientMac'] } 2#=> ["xxx","xxx","xxx",.....,"xxx"](Macアドレスが格納)

なので、そのMacアドレスの配列の要素を繰り返しpersonal_logsテーブルの"macaddr"カラムと照合して"data"カラムの個人情報を出力するコーディングができていないです。

当方初心者なため、どうかお力を貸して頂きたいです。

MySQL
personal_logsテーブル:macaddrカラム(Macアドレス),data(個人情報)
+-------------+-------------+------+-----+---------+----------------+
| Field | Type | Null | Key | Default | Extra |
+-------------+-------------+------+-----+---------+----------------+
| id | int(11) | NO | PRI | NULL | auto_increment |
| logid | varchar(32) | NO | MUL | NULL | |
| macaddr | varchar(20) | NO | | NULL | |
| aid | varchar(20) | YES | MUL | NULL | |
| auth_policy | varchar(20) | YES | | NULL | |
| provider | varchar(20) | YES | | NULL | |
| data | text | YES | | NULL | |
| cdate | datetime | YES | | NULL | |
| udate | datetime | YES | | NULL | |
+-------------+-------------+------+-----+---------+----------------+

eventsテーブル    : dataカラム(wifi proveして取得した情報)

補足情報(FW/ツールのバージョンなど)

Rails:5.2.0
ruby:2.5.1
MySQL:14.14 Distrib 5.5.60

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

Orlofsky

2018/07/30 02:52

質問にpersonal_logsのCREATE TABLE文も載せてください。
kozica

2018/07/30 03:03

投稿編集致しました。
Orlofsky

2018/07/30 03:47

これはCREATE TABLE文ではありません。
退会済みユーザー

退会済みユーザー

2018/07/30 04:15

調べてみたようですけど「CREATE TABLE文」ではいまいちいい検索結果は出ないですね。/db/migrate/00000000000000_create_personal_logs.rbみたいなファイルにcreate_table do ~ endのコードがあるのでそこの部分を載せればいいと思います。
kozica

2018/07/30 04:46

db:migrateでテーブルを作成してないので、create table文はわからないです。
kozica

2018/07/30 05:08

create table文がないと厳しいでしょうか?
kozica

2018/07/30 05:41 編集

コマンドはわかります。言葉を返すようですが、mysql > show table personal_logs;ではエラーになります。mysql > show tables; もしくは mysql > show columns from personal_logs;ということですか?
kozica

2018/07/30 05:36

create table文で得たい情報とはなんでしょうか?当方はカラム型かと思いpersonal_logsテーブルの詳細情報を載せました。
Orlofsky

2018/07/30 06:06

データベースツールはログインしなければ使えません。テーブルを作ったユーザー(スキーマ)にログインしましたか?
Orlofsky

2018/07/30 06:07

テーブルの中のデータを何件か、希望する結果も提示すると適切なコメントが付き易いです。
kozica

2018/07/30 06:19 編集

はい。エラーでも出てますが構文が間違ってると思うのですがどうでしょうか?show tablesではなくshow tableと単数形やテーブル名の前にfromの記述がないのはわざとでしょうか?構文的にここが原因でエラーが出てると思うのですが
kozica

2018/07/30 06:19

希望する結果は記述しておりますが、これではまだ不十分ということでしょうか?
kozica

2018/07/30 06:28

create table文で得たい情報はなんでしょうか?それをお聞きして回答したほうが早いかと思います。
guest

回答1

0

ベストアンサー

Rubyには詳しくありませんが、下記の何れかで出来ないですかね?
[Rails 3.2.9] ActiveRecordでIN句
Ruby on Rails でIN句を使う方法

投稿2018/07/30 07:51

sazi

総合スコア25195

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

kozica

2018/07/31 01:24

IN句を活用して動くようになりました。 IN句を知れてよかったです。 ありがとうございました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問