SELECT
productname
FROM
products
WHERE
productname REGEXP '^(A|B|C)'
ORDER BY productname;
执行上面查询语句,得到以下结果 -
+--------------------------------+
| productname |
+--------------------------------+
| America West Airlines B757-200 |
| American Airlines: B767-300 |
| American Airlines: MD-11S |
| ATA: B757-300 |
| Boeing X-32A JSF |
| Collectable Wooden Train |
| Corsair F4U ( Bird Cage) |
+--------------------------------+
7 rows in set
该模式允许查询名称以A,B或C开头的产品。
字符^表示从字符串的开头匹配。
字符|如果无法匹配,则搜索替代方法。
下表说明了正则表达式中一些常用的元字符和构造。
元字符
行为
^
匹配搜索字符串开头处的位置
$
匹配搜索字符串末尾的位置
.
匹配任何单个字符
[…]
匹配方括号内的任何字符
[^…]
匹配方括号内未指定的任何字符
匹配p1或p2模式
*
匹配前面的字符零次或多次
+
匹配前一个字符一次或多次
{n}
匹配前几个字符的n个实例
{m,n}
从m到n个前一个字符的实例匹配
要查找名称以a开头的产品,您可以在名称开头使用“^”进行匹配,如下查询语句:
SELECT
productname
FROM
products
WHERE
productname REGEXP '^a';
执行上面查询语句,得到以下结果 -
+--------------------------------+
| productname |
+--------------------------------+
| American Airlines: B767-300 |
| America West Airlines B757-200 |
| ATA: B757-300 |
| American Airlines: MD-11S |
+--------------------------------+
4 rows in set
SELECT
productname
FROM
products
WHERE
productname REGEXP 'f$';
执行上面查询语句,得到以下结果 -
+------------------+
| productname |
+------------------+
| Boeing X-32A JSF |
+------------------+
1 row in set
要查找其名称包含“ford”的产品,请使用以下查询:
SELECT
productname
FROM
products
WHERE
productname REGEXP 'ford';
执行上面查询语句,得到以下结果 -
+----------------------------------+
| productname |
+----------------------------------+
| 1968 Ford Mustang |
| 1969 Ford Falcon |
| 1940 Ford Pickup Truck |
| 1911 Ford Town Car |
| 1932 Model A Ford J-Coupe |
| 1926 Ford Fire Engine |
| 1913 Ford Model T Speedster |
| 1934 Ford V8 Coupe |
| 1903 Ford Model A |
| 1976 Ford Gran Torino |
| 1940s Ford truck |
| 1957 Ford Thunderbird |
| 1912 Ford Model T Delivery Wagon |
| 1940 Ford Delivery Sedan |
| 1928 Ford Phaeton Deluxe |
+----------------------------------+
15 rows in set