質問編集履歴

1 メッセージ追加

dsk777

dsk777 score 15

2017/03/09 18:04  投稿

mysqlでAGAINSTの引数にカラムの指定
mysql(amazon aurora) のDBでの質問です。
以下のようなSQLで処理を行っていたのですが、likeが遅く、
```ここに言語を入力
SELECT
A.id as base_id,
B.id as sub_id
FROM hoge as A left join hoge as B on ( B.key1 like CONCAT( '%' , A.key2 , '%' ) )
```
対応策とし、key1 に FULLTEXT INDEX を指定し、以下SQLで高速化をはかろうとしました。
```ここに言語を入力
SELECT
A.id as base_id,
B.id as sub_id
FROM hoge as A left join hoge as B on ( MATCH ( B.key1 ) AGAINST ( CONCAT( '+' , A.key2 ) IN BOOLEAN MODE) )
```
その結果、AGAINSTの引数エラーが発生し、実行できずでした。
AGAINST の引数にカラムに A.key2 のようにカラムをセットすることは難しいものなのでしょうか?
どなたかご存知の方がいらっしゃれば、アドバイス頂けましたら幸いです。
どなたかご存知の方がいらっしゃれば、アドバイス頂けましたら幸いです。
エラーメッセージを追記します
```ここに言語を入力
ERROR 1210 (HY000): Incorrect arguments to AGAINST
```
  • MySQL

    6996 questions

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

  • SQL

    3012 questions

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

思考するエンジニアのためのQ&Aサイト「teratail」について詳しく知る