MYSQL入门学习之二:使用正则表达式搜索_MySQL
正则表达式
bitsCN.com
MYSQL入门学习之二:使用正则表达式搜索
一、正则表达式介绍
正则表达式是用来匹配文本的特殊的串(字符集合)。
二、使用MySQL正则表达式
1、MySQL仅仅支持多数正则表达式实现的一个很小的子集。
2、LIKE匹配整个列值;而REGEXP匹配列值的子串,如果被匹配的文本在列值中出现,REGEXP将会找到它,相应的行将被返回。看下面的例子:
[sql]
mysql>select username from v9_admin where username like 'space';
Emptyset (0.00 sec)
mysql>select username from v9_admin where username REGEXP 'space';
+-----------+
|username |
+-----------+
|warmspace |
+-----------+
1 rowin set (0.02 sec)
3、默认MySQL中的正则表达式匹配不区分大小写,可使用BINARY关键字区分大小写,如
[sql]
mysql>select username from v9_admin
-> where username REGEXP BINARY'SPACCE';
Emptyset (0.04 sec)
4、进行OR匹配:为搜索两个串之一,使用|,如下所示:
[sql]
mysql>select roleid from v9_admin_role
-> where roleid REGEXP '1|3';
+--------+
|roleid |
+--------+
| 1 |
| 3 |
+--------+
2 rowsin set (0.00 sec)
5、匹配几个字符之一:匹配任何单一字符。如下所示:
[sql]
mysql>select name from v9_collection_node
-> where name REGEXP '005-[123]';
+-----------------+
|name |
+-----------------+
|101-02-01-005-2 |
|101-02-01-005-1 |
|101-02-01-005-3 |
+-----------------+
3 rowsin set (0.00 sec)
正如所见,[]是另一种形式的OR语句。'005-[123]'与’005-[1|2|3]’是等价的。
匹配除给定字符外的字符:
[sql]
mysql>select name from v9_collection_node
-> where name REGEXP '005-[^123]';
+-------------------+
|name |
+-------------------+
|101-02-01-005-4.2 |
|101-02-01-005-4 |
|101-02-01-005-5 |
+-------------------+
3 rowsin set (0.00 sec)
6、可使用-来定义一个范围。如[1-9],[a-b]。
[sql]
mysql>select name from v9_collection_node
-> where name REGEXP '005-[1-3]';
+-----------------+
|name |
+-----------------+
|101-02-01-005-2 |
|101-02-01-005-1 |
|101-02-01-005-3 |
+-----------------+
3 rowsin set (0.00 sec)
7、为了匹配特殊字符,必须用//为前导,例如//-,//.等。这种处理即转义(escaping)。
多数正则表达式实现使用单个反斜杠转义特殊字符,但MYSQL要求两个(MYSQL自己解释一个,正则表达式库解释另一个)。
//也用来引用元字符(具有特殊含义的字符),如下表:
8、为了更方便工作,可以使用预定义的字符集,称为字符类(character class)。
[sql]
mysql> select name fromv9_collection_node
-> where name REGEXP '[[:digit:]]';
+-------------------+
| name |
+-------------------+
| 101-10-01-002-1 |
| 101-02-01-005-4.2 |
| 101-02-01-005-2 |
| 101-02-01-005-1 |
| 101-02-01-005-3 |
| 101-02-01-005-4 |
| 101-02-01-005-5 |
| 101-10-01-002-2 |
| 101-11-04-001-1 |
+-------------------+
9 rowsin set (0.00 sec)
9、使用正则表达式重复元字符匹配多个实例:
[sql]
mysql> select name fromv9_collection_node
-> where name REGEXP '1{2}';
+-----------------+
| name |
+-----------------+
| 101-11-04-001-1 |
+-----------------+
1 rowin set (0.00 sec)
10、定位符(为了匹配特定位置的文本):
[sql]
mysql> select name from v9_collection_node
-> where name REGEXP '2$';
+-------------------+
| name |
+-------------------+
| 101-02-01-005-4.2 |
| 101-02-01-005-2 |
| 101-10-01-002-2 |
+-------------------+
3 rows in set (0.00 sec)
11、使REGEXP起类似LIKE的作用,它们的区别在于LIKE匹配整个串而REGEXP匹配子串。利用定位符,通过用^开始每个表达式,用$结束每个表达式。
12、简单的正则表达式测试:可以在不使用数据库表的情况下用SELECT来测试正则表达式。REGEXP检查总是返回0或1(匹配)。
[sql]
mysql> select 'hello' REGEXP'[0-9]';
+------------------------+
| 'hello' REGEXP '[0-9]' |
+------------------------+
| 0 |
+------------------------+
1 row in set (0.00 sec)
bitsCN.com

ホットAIツール

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

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

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

Video Face Swap
完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

人気の記事

ホットツール

メモ帳++7.3.1
使いやすく無料のコードエディター

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

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

ドリームウィーバー CS6
ビジュアル Web 開発ツール

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

ホットトピック











Python は高レベルのプログラミング言語であり、学習と使用が簡単です。 Python プログラムを作成する必要があると、必然的に構文エラーに遭遇することになります。式の構文エラーはよくあるエラーです。この記事では、Python で式の構文エラーを解決する方法について説明します。式の構文エラーは Python で最も一般的なエラーの 1 つであり、通常は構文の間違った使用法や必要なコンポーネントの欠落によって発生します。 Python では、式は通常、数値、文字列、変数、演算子で構成されます。ごくありふれた

C または C++ では、カンマ「,」はさまざまな用途に使用されます。ここではそれらの使用方法を学びます。演算子としてのカンマ。カンマ演算子は、最初のオペランドを評価して結果を破棄し、次に 2 番目のオペランドを評価して値を返す二項演算子です。カンマ演算子は、C または C++ では優先順位が最も低くなります。例 #include<stdio.h>intmain(){ intx=(50,60); inty=(func1(),func2());} ここでは、x に 60 が代入されます。次のステートメントでは、 func1( が最初に実行されます

ラムダ式は、名前が示すように、矢印記号 (->) を中心とした匿名関数です。コードのブロックを引数として他のメソッドに渡したり、後で使用するために変数に格納したりできます。ラムダ式の構文は簡潔で理解しやすく、データ フローの処理や並列コンピューティングに非常に適しています。 1. ラムダ式の基本構文 ラムダ式の基本構文は以下のとおりです。 (パラメータリスト)->{コードブロック} このうち、パラメータリストとコードブロックはオプションです。パラメータが 1 つだけの場合は、括弧を省略できます。コード ブロックが 1 行のみの場合は、中括弧を省略できます。たとえば、次のコード ブロックはラムダ式を使用して数値に 1 を加算します。

C 言語での指数関数式の書き方とコード例の紹介 指数関数とは? 指数関数は数学でよく使われる関数で、f(x)=a^x の形式で表現できます。 a は底、x は指数です。指数関数は主に、指数関数的な増加または指数関数的な減衰を説明するために使用されます。指数関数のコード例 C 言語では、数学ライブラリの pow() 関数を使用して指数関数を計算できます。

Java のラムダ式 Java 8 のリリースにより、ラムダ式は Java 開発者の間で最も懸念され、議論されるトピックの 1 つになりました。ラムダ式を使用すると、Java プログラマーの退屈な記述方法が簡素化され、プログラムの可読性と保守性も向上します。この記事では、Java のラムダ式と、ラムダ式が Java コードでよりシンプルで直感的なプログラミング エクスペリエンスを提供する方法について詳しく説明します。

ラムダ式は、コレクションを反復処理するために便利に使用できる匿名関数です。この記事では、ラムダ式を使用してコレクションを反復処理する方法を紹介し、具体的なコード例を示します。 Python では、ラムダ式の構文形式は次のとおりです。 ラムダ パラメータ リスト: 式のパラメータ リストには、カンマで区切られた 1 つ以上のパラメータを含めることができます。式はラムダ関数の戻り値です。以下の簡単な例を見てみましょう。

ラムダ式の概要と基本構文 ラムダ式は、関数パラメータ リスト、コロン、関数本体で構成されます。関数パラメータのリストは通常の関数と同じで、関数本体はステートメントのセットではなく式です。 #例: 2 つの数値を受け取り、その合計を返す関数を返す sum=lambdax,y:x+y ラムダ式のアプリケーション シナリオ ラムダ式は、コールバック関数、フィルター関数、およびマッピング関数としての使用に非常に適しています。コールバック関数: コールバック関数は、別の関数内で呼び出される関数です。ラムダ式を使用すると、名前を宣言せずにコールバック関数を簡単に作成できます。フィルター機能: フィルター機能は、完全なフィルターを除去するために使用されます。

コンピューター技術の急速な発展に伴い、プログラミング言語は常にアップグレードおよび改良されています。その中でも、PHP は一般的に使用される Web 開発言語として、常に革新され、新しいバージョンがリリースされています。最近、PHP8.0バージョンがリリースされ注目を集めています。中でも新バージョンでの例外処理機構の改善は大きな注目を集めている。この記事では、PHP8.0 の try ステートメント ブロックでの式サポートのトピックに焦点を当てます。 1. PHP8.0の例外処理機構の改善 以前のバージョンでは、P
