ホームページ データベース mysql チュートリアル MySQL单表多关键字模糊查询的实现方法

MySQL单表多关键字模糊查询的实现方法

Jun 07, 2016 pm 06:03 PM
キーワード ファジークエリ

MySQL单表多关键字模糊查询实现方法是很多人都非常想知道的一个问题,那么,究竟采用什么方法,才能实现MySQL单表多关键字模糊查询呢?

在最近的一个项目需要实现在MySQL单表多关键字模糊查询,但这数个关键字并不一定都存在于某个字段。例如现有table表,其中有title,tag,description三个字段,分别记录一条资料的标题,标签和介绍。然后根据用户输入的查询请求,将输入的字串通过空格分割为多个关键字,再在这三个字段中查询包含这些关键字的记录。


可目前遇到的问题是,这些关键字是可能存在于三个字段中的任意一个或者多个,但又要求三个字段必须包含所有的关键词。如果分别对每个字段进行模糊匹配,是没法实现所需的要求,由此想到两种方法:

在插入记录的同时,将需要进行多字段模糊查询的字段合并成一个字串并加入到一个新的字段中,然后对这个新字段进行模糊查询。 使用全文检索,但是这需要用到中文分词或者将汉字转化为拼音(拆分汉字是不可行的,MySQL默认FT最小字节为4),而且并不利于今后的维护。
在网上爬了两天,对此问题的处理都没有找到满意的解决方法,最后在《MySQL权威指南》中翻到了CONCAT的使用方法,在书中的对CONCAT的描述是:

CONCAT(str1,str2,…)
返回值:由全体出入参数合并在一起而得到的字符串。只要输入的参数中有NULL值,就返回NULL。CONCAT允许只有一个输入参数的情况。

因此,MySQL单表多关键字模糊查询可以通过下面这个SQL查询实现
SELECT * FROM `magazine` WHERE CONCAT(`title`,`tag`,`description`) LIKE ‘%关键字%'
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

AI Hentai Generator

AI Hentai Generator

AIヘンタイを無料で生成します。

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

中国語版、とても使いやすい

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)

C 言語における static キーワードの役割と使用法の詳細な分析 C 言語における static キーワードの役割と使用法の詳細な分析 Feb 20, 2024 pm 04:30 PM

C 言語における static キーワードの役割と使用法の詳細な分析 C 言語では、static は関数、変数、データ型の定義に使用できる非常に重要なキーワードです。 static キーワードを使用すると、オブジェクトのリンク属性、スコープ、ライフサイクルが変更される可能性があるため、C 言語における static キーワードの役割と使用法を詳しく分析してみましょう。静的変数と関数: 関数内で static キーワードを使用して定義された変数は静的変数と呼ばれ、グローバルなライフサイクルを持ちます。

go は C 言語のキーワードですか?詳細な分析 go は C 言語のキーワードですか?詳細な分析 Mar 16, 2024 am 10:30 AM

タイトル: go は C 言語のキーワードですか?詳細な分析 C 言語では、「go」はキーワードではありません。 C 言語のキーワードは C 標準で指定されており、特定の文法構造または関数を表すために使用されます。コンパイラでは特別な意味を持ち、識別子や変数名として使用することはできません。たとえば、キーワード「int」は整数データ型を表し、「if」は条件ステートメントを表します。 「go」が C 言語のキーワードであるかどうかを確認したい場合は、それをテストするための簡単なプログラムを作成できます。以下に例を示します: #inc

PHP における var キーワードの役割と例 PHP における var キーワードの役割と例 Jun 28, 2023 pm 08:58 PM

PHP における var キーワードの役割と例 PHP では、var キーワードを使用して変数を宣言します。以前の PHP バージョンでは、var キーワードの使用がメンバー変数を宣言する慣用的な方法でしたが、その使用は推奨されなくなりました。ただし、場合によっては、引き続き var キーワードが使用されます。 var キーワードは主にローカル変数を宣言し、その変数をローカル スコープとして自動的にマークするために使用されます。これは、変数が現在のコード ブロック内でのみ表示され、他の関数やコード ブロックからはアクセスできないことを意味します。変数を使用する

C言語にはキーワードがいくつありますか? C言語にはキーワードがいくつありますか? Nov 22, 2022 pm 03:39 PM

C言語には32個のキーワードがあり、キーワードの機能によりデータ型キーワード、制御文キーワード、記憶型キーワード、その他のキーワードの4つに分類されます。 char、double、float、int などを含む 12 個のデータ型キーワードがあり、for、break、if、else、do などを含む 12 個の制御ステートメント キーワードがあり、auto、 static 、 extern など、他に const、sizeof などを含む 4 つのキーワードがあります。

go 言語のキーワードは while ですか? go 言語のキーワードは while ですか? Jun 04, 2021 pm 05:01 PM

Go 言語では、while はキーワードではありません。for ステートメントと Break を使用すると、「for {sum++ if sum>10{break}else{...}}」など、while ループの効果を得ることができます。 go 言語には、break、default、func、select、case、defer、go、map、else、goto、for、if、var など 25 のキーワードがあります。

PHPでwhereファジークエリを使用する方法 PHPでwhereファジークエリを使用する方法 Mar 23, 2023 pm 02:11 PM

PHP 言語では、where 句は SQL ステートメントの最も重要な部分であり、指定されたテーブル内のデータをフィルタリングして必要な結果を取得するために使用されます。ファジー クエリは一般的な操作の 1 つで、クエリ内でワイルドカード文字を使用して、テキスト フィールド内のデータの一部と一致させることができます。 PHP で where ファジー クエリを使用する方法を見てみましょう。

Go 言語キーワードの完全なリスト Go 言語キーワードの完全なリスト Apr 07, 2024 pm 02:15 PM

Go 言語のキーワードは次のとおりです。 基本キーワード: const、func、type、var、if、else、for、return データ型関連キーワード: bool、string、int、float64、interface{}、map、slice その他のキーワード:break、続行、延期、移動、選択、範囲

PHP における extends キーワードの役割と使用法の詳細な説明 PHP における extends キーワードの役割と使用法の詳細な説明 Jun 28, 2023 pm 08:04 PM

PHP における extends キーワードの役割と使用法の詳細な説明 PHP プログラミングにおいて、extends はクラスの継承を実装するために使用される非常に重要なキーワードです。 extends キーワードを使用すると、1 つ以上の既存のクラスのプロパティとメソッドを継承できる新しいクラスを作成できます。継承はオブジェクト指向プログラミングにおける重要な概念であり、コードの再利用と拡張をより便利かつ柔軟にします。この記事では、extendsキーワードの機能と使い方を詳しく紹介します。伸びる

See all articles