MySQL正则表达式初步_MySQL
正则表达式
我们知道,在SQL之中,可以用 like 这个谓词(表达式) 来进行模糊检索,并支持 %,?,_等占位符.但是,这个模糊检索的功能有很多限制,简单来说就是太模糊了。
在MySQL中提供了 REGEXP 关键字来支持正则表达式,当然,只是一些很简单的正则啦。
首先,我们构造一些测试数据。
-- 建表USE test;DROP TABLE IF EXISTS t_regcustomer;CREATE TABLE t_regcustomer ( id INT(10) AUTO_INCREMENT ,name VARCHAR(256) ,age INT(10) , PRIMARY KEY(id)) COLLATE='utf8_general_ci' ENGINE=InnoDB;
-- 插入一些测试数据:TRUNCATE TABLE t_regcustomer;INSERT INTO t_regcustomer(name, age) VALUES ('王明',20);INSERT INTO t_regcustomer(name, age) VALUES ('王大',21);INSERT INTO t_regcustomer(name, age) VALUES ('小王',22);INSERT INTO t_regcustomer(name, age) VALUES ('小王2',22);INSERT INTO t_regcustomer(name, age) VALUES ('敲不死',23);INSERT INTO t_regcustomer(name, age) VALUES ('憨憨',24);INSERT INTO t_regcustomer(name, age) VALUES ('憨憨2',24);INSERT INTO t_regcustomer(name, age) VALUES ('郭靖名',25);INSERT INTO t_regcustomer(name, age) VALUES ('郭靖2',25);INSERT INTO t_regcustomer(name, age) VALUES ('郭靖3',25);INSERT INTO t_regcustomer(name, age) VALUES ('郭得缸',25),('大鹏',20),('大鹏2',20),('大鹏3',20),('二鹏',19),('鹏鹏',18),('鹏鹏1',18),('小鹏',17),('AAA',17),('aaa',17),('SS',17),('s2',17),('ss',17);
1. 最简单的查询:
SELECT *FROM t_regcustomer;
SELECT c.id, c.name, c.ageFROM t_regcustomer c;
SELECT c.id, c.name, c.ageFROM t_regcustomer cORDER BY c.age ASC;
%匹配任意数量(0~n)的任意字符
SELECT c.id, c.name, c.ageFROM t_regcustomer cWHERE c.name LIKE '%鹏%'ORDER BY c.age ASC;
.匹配任意一个字符
注意此处因为没有起始(^)和结束($)限定符,所以只要列中出现的行都会被检索出来.
SELECT c.id, c.name, c.ageFROM t_regcustomer cWHERE c.name REGEXP '.鹏.'ORDER BY c.age ASC;
SELECT c.id, c.name, c.ageFROM t_regcustomer cWHERE c.name REGEXP '^王'ORDER BY c.age ASC;
SELECT c.id, c.name, c.ageFROM t_regcustomer cWHERE c.name REGEXP BINARY '^s'ORDER BY c.age ASC;
SELECT c.id, c.name, c.ageFROM t_regcustomer cWHERE c.name REGEXP BINARY 'a|s'ORDER BY c.name ASC;
[123] 表示 1、2、3这3个数字之一出现即可
SELECT c.id, c.name, c.ageFROM t_regcustomer cWHERE c.name REGEXP BINARY '鹏[123]'ORDER BY c.name ASC;
SELECT c.id, c.name, c.ageFROM t_regcustomer cWHERE c.name REGEXP BINARY '鹏[1-9]'ORDER BY c.name ASC;
使用 //
可以转义 /.[]()?-| 以及分页,换行符号等
11.更多内容
请查阅 《MySQL必知必会》 68页 正则表达式

熱AI工具

Undresser.AI Undress
人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

Video Face Swap
使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱門文章

熱工具

記事本++7.3.1
好用且免費的程式碼編輯器

SublimeText3漢化版
中文版,非常好用

禪工作室 13.0.1
強大的PHP整合開發環境

Dreamweaver CS6
視覺化網頁開發工具

SublimeText3 Mac版
神級程式碼編輯軟體(SublimeText3)

Python作為一種高階程式語言,易於學習和使用。一旦需要編寫Python程式時,無法避免地遇到語法錯誤,表達式語法錯誤是常見的一種。在本文中,我們將討論如何解決Python的表達式語法錯誤。表達式語法錯誤是Python中最常見的錯誤之一,它通常是由於錯誤的使用語法或缺少必要組件而導致的。在Python中,表達式通常由數字、字串、變數和運算子組成。最常見的

Lambda表達式,顧名思義,就是一種以箭頭符號(->)為核心的匿名函數。它允許你將程式碼區塊作為參數傳遞給其他方法,或將其儲存到變數中以供以後使用。 Lambda表達式語法簡潔、易於理解,非常適合處理資料流和平行計算。 1.Lambda表達式的基本語法Lambda表達式的基本語法如下:(參數列表)->{程式碼區塊}其中,參數列表和程式碼區塊都是可選的。如果只有一個參數,可以省略括號。如果程式碼區塊只有一行,可以省略大括號。例如,以下程式碼區塊使用Lambda表達式實現了將數字加1的功能:List

在C或C++中,逗號「,」有不同的用途。在這裡我們將了解如何使用它們。逗號作為運算符。逗號運算符是一個二元運算符,它計算第一個操作數,然後丟棄結果,然後計算第二個運算符並傳回值。逗號運算子在C或C++中的優先權最低。範例#include<stdio.h>intmain(){ intx=(50,60); inty=(func1(),func2());}這裡60將被指派給x。對於下一語句,將會先執行func1(

C語言中指數函數表達式的寫法介紹及代碼範例什麼是指數函數指數函數是數學中一類常見的函數,可以表示為f(x)=a^x的形式,其中a為底數,x為指數。指數函數主要用來描述指數成長或指數衰減的情況。指數函數的程式碼範例在C語言中,我們可以使用數學庫中的pow()函數來計算指數函數,以下是一個範例程式:#include

Java中的lambda表達式隨著Java8的發布,lambda表達式成為了Java開發者們最關注和討論的話題之一。 Lambda表達式可以簡化Java程式設計師繁瑣的書寫方式,同時也能夠提升程式的可讀性和維護性。在本文中,我們將深入探討Java中的lambda表達式,以及它們如何在Java程式碼中提供更簡單、更直覺的程式設計體驗。

lambda表達式是一種匿名函數,它可以很方便地用於遍歷集合。在這篇文章中,我們將介紹如何使用lambda表達式遍歷集合,並提供具體的程式碼範例。在Python中,lambda表達式的語法格式如下:lambda參數列表:表達式lambda表達式的參數列表可以包含一個或多個參數,並用逗號隔開。表達式是lambda函數的回傳值。下面我們來看一個簡單的例子,假設

Lambda表達式的簡介與基本語法Lambda表達式由一個函數參數列表,一個冒號和一個函數體組成。函數參數列表與普通函數的參數列表相同,函數體則是表達式,而不是一組語句。 #範例:傳回一個函數,該函數接收兩個數字並傳回它們的和sum=lambdax,y:x+yLambda表達式的應用程式場景Lambda表達式非常適合用作回調函數、濾波器函數和映射函數。回調函數:回呼函數是指在另一個函數中呼叫的函數。 Lambda表達式可以輕鬆建立回呼函數,而無需聲明其名稱。濾波器函數:濾波器函數用於從序列中過濾出滿

隨著電腦技術的快速發展,程式語言也不斷地升級和完善。其中,PHP作為常用的Web開發語言,也不斷地推陳出新,不斷推出新的版本。最近,PHP8.0版本的發布引起了廣泛的關注。其中,新版本中對於異常處理機制的改進引起了許多人的注意。本文將圍繞著PHP8.0中的try語句區塊支援表達式這個主題展開討論。一、PHP8.0異常處理機制的改進在先前的版本中,P
