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

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

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

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

SQL

SQL(Structured Query Language)は、リレーショナルデータベース管理システム (RDBMS)のデータベース言語です。大きく分けて、データ定義言語(DDL)、データ操作言語(DML)、データ制御言語(DCL)の3つで構成されており、プログラム上でSQL文を生成して、RDBMSに命令を出し、RDBに必要なデータを格納できます。また、格納したデータを引き出すことも可能です。

Q&A

2回答

24176閲覧

複数キーワードでかつ、OR検索で絞込ができるSQLをかきたいです。

qaz3330

総合スコア113

MySQL

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

SQL

SQL(Structured Query Language)は、リレーショナルデータベース管理システム (RDBMS)のデータベース言語です。大きく分けて、データ定義言語(DDL)、データ操作言語(DML)、データ制御言語(DCL)の3つで構成されており、プログラム上でSQL文を生成して、RDBMSに命令を出し、RDBに必要なデータを格納できます。また、格納したデータを引き出すことも可能です。

0グッド

0クリップ

投稿2016/11/29 12:21

編集2016/11/29 12:46

Articleテーブルがあり、
その、namedescription に含まれるワードを検索する機能を実装したいです。

また、検索するクエリは可能でしたら、「ノマド ライフ」といったように、複数のワードでも絞りこめるようにしたいです。
(併せてあいまい検索であることが前提となります。)

このような場合、どのようなSQLで組み立てればよいのかわからず質問致しました。

SELECT * FROM articles WHERE title || description LIKE 'ノマド';

宜しくお願いします。

追記

また、検索クエリの数が3つになったり1つになったり変動致します。(ユーザー次第)

そういった変動に対して、動的にSQLも組み立てたいと思っております。

サーバーサイドは、Ruby on Rails を用いてますが、可能な限り、SQL単体で、実現したいです。

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

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

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

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

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

guest

回答2

0

sql

1SELECT * 2FROM articles 3WHERE 4(name like '%A%' or description like '%A%') 5AND 6(name like '%B%' or description like '%B%')

投稿2016/11/29 12:26

退会済みユーザー

退会済みユーザー

総合スコア0

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

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

qaz3330

2016/11/29 12:45

ご回答有難う御座います。質問文にきちんと記載しておらず申し訳ありませんが、 検索クエリの数が3つになったり1つになったり変動致します。(ユーザー次第) そういった変動に対して、動的にSQLも組み立てたいのですが、そういったことは可能でしょうか? サーバーサイドは、Ruby on Rails を用いてますが、可能な限り、SQL単体で、実現したいです。 宜しくお願いします。
退会済みユーザー

退会済みユーザー

2016/11/29 15:58 編集

回答のSQLを解読して、応用すれば可能です。 > 宜しくお願いします。 お客さんじゃないんだから、努力の跡を見せてください。
退会済みユーザー

退会済みユーザー

2016/11/29 15:34

それにしても、質問放置しすぎですね。
guest

0

あいまい検索はSQLの不得意とするところなのでインデックスは期待できません
逆に割り切ってこんなやり方を検討してもよいかもしれません

  • 元データ作成

SQL

1create table articles(id int not null primary key,title varchar(20),description varchar(20)); 2insert into articles values(1,'x','x'),(2,'xノマドx','yノマドy'),(3,'xノマドx','yライフy'),(4,'xライフxノマドx','y'),(5,'xライフx','yノマドy'),(6,'x','yライフy'); 3
  • or検索(ノマドかライフがあればいい)

SQL

1select * from articles 2where 1 3and concat(title,' ',description) regexp 'ノマド|ライフ'
  • and検索(ノマドとライフの両方を含む、ただしどちらかに偏ってもOK)

SQL

1select * from articles 2where 1 3and concat(title,' ',description) regexp 'ノマド' 4and concat(title,' ',description) regexp 'ライフ'

投稿2016/11/29 12:46

yambejp

総合スコア114843

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問