問題タブ [against]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
1 に答える
1155 参照

php - 複数のフィールドにわたる複数のキーワードに対するMySql SELECTクエリ

クエリのロジックについて助けが必要ですSELECT。誰かが私が持っているアイデアよりも優れたアイデアを教えてくれることを願っています。

次のようなテーブルがあります。

ユーザーは、1 つ以上のキーワードを入力して、このテーブルを検索できます。

私が今持っているクエリは、各フィールドMATCHに入力されたすべてのキーワードに対して実行し、いずれAGAINSTかのキーワードに一致する行を取得します。したがって、入力が「丸い肉」の場合、結果は行 1、3、および 4 になります。

ただし、すべてのキーワードを含む行のみを返す必要があります。キーワードは、3 つの列のいずれかに含まれている可能性があります。

したがって、ユーザーが「丸い肉」と入力すると、行 4 のみが返されます。

私の現在のアイデアは非常に単純で、おそらくあまり良くありません (複数のキーワードでパフォーマンスの問題が発生することが予想されます):

それを行うより良い方法はありますか?

0 投票する
1 に答える
40 参照

php - Match と Against を使用した Mysql 全文検索

これは非常にばかげた質問かもしれません。しかし、私はmysqlを初めて使用し、それほど多くの経験がありませんでした.

複数の列で文字列を検索する全文検索を作成したいと考えていました。インターネットでMatch and Againstの方法を見つけて、試してみました。

それが私が残したものです:

このコードでは、次のエラーが発生します。

私の知る限り、クエリに間違った情報があると、このエラーが表示されます。しかし、私は間違った情報が何であるかを知りません。すべての列が存在します。私は何を間違えましたか?

読んでくれてありがとう!うまくいけば、これを解決するのを手伝ってくれます。

0 投票する
2 に答える
2533 参照

mysql - 検索文字列に含まれる単語を含むレコードをフィルタリングする MySQL クエリ

検索文字列と MySQL テーブルのフィールドを照合する単純な検索ページを作成する必要があります。

データベース テーブルが「records」で、検討中のフィールドが「record_title」であると仮定します。また、次は行の「record_titles」です。

単語1 単語
2 単語1 単語3 単語4 単語5 単語2
単語1 単語
6

検索フォームで、ユーザーが「word1 word7」、「word1」、「word1 word5」、「word1 word2」などの検索語を送信すると、検索語に少なくとも 1 つの単語を含むレコードタイトルが返されます。検索文字列を部分文字列として使用しないでください。たとえば、検索語が「単語」の場合、上記のレコード セットのレコードは返されません。

次のようにしてみましたが、単語と一致しない場合があります。

それ(または別のソリューション)を使用して、一致する単語が少なくとも 1 つ含まれるレコードを選択する方法を教えてください。

ありがとうございました。

ギル

0 投票する
0 に答える
74 参照

php - 値 preg_match に基づいて、内破関数に異なる「接着剤」を挿入します

ブール モードで MATCH と AGAINST を使用して検索クエリを実行しています。キーワードを ARRAY に格納して、TAGS のようであることを示しています。 「完全一致」やその他の特殊文字などの BOLEAN 機能検索を保持します。

配列値にスペースが含まれている場合に引用符を挿入することはできますか?

次に、implode を使用して SQL ステートメントに変換する必要があります。

ARRAY_FILTER() を使用しようとしましたが、一方のみを識別し、他方を識別します。

私の目標は、値に2つ以上の単語が含まれている場合に配列値を識別することです。関数は値に引用符を追加します

助けてくれてどうもありがとう

0 投票する
1 に答える
665 参照

mysql - Group concat with where match against in mysql

I'm working on a simple search function with SQL and got stuck. I use GROUP_CONCAT to put all keywords in a single row. The keywords are taken from categories.

Not all columns are in this example. I've stripped it down

keywords contains something like keyword1 keyword2 keyword3.

The SQL above is working. However, I can't use MATCH AGAINST with a virtual value keywords value.

I've read about what I think is an ugly workaround, to add this:

LIKE is probably slow and because HAVING is after GROUP BY I can't use OR so HAVING in this case will override the WHERE.

Ideally, I would like to use a MATCH AGAINST on keywords as well. So, what are my options?

  • Some kind of virtual table?
  • Subquery?
  • Something else?

I probably need an example code to understand.