在搜索数据库中的数据时,SQL 通配符可以替代一个或多个字符。SQL 通配符必须与 LIKE 运算符一起使用。在 SQL 中,可使用以下通配符:通配符 描述 % 替代一个或多个字符 _ 仅替代一个字符 [charlist] 字符列中的任何单一字符 [^charlist] 或者 [!charlist]。 mysql> select * from Person where City not like '%lon%';+----+----------+-----------+----------------+----------+------+| id | LastName | FirstName | Address | City | Year |+----+----------+-----------+----------------+----------+------+| 3 | Bush | George | Fifth Avenue | NEW York | 1975 || 7 | Carter | Fred | Changan Street | Beijing | 1980 |+----+----------+-----------+----------------+----------+------+但是当你使用[charlist]来模糊搜索的时候,你会发现你很有可能查不到你想要的结果: 其实,当你想要用[charset]这种模式来搜索的时候应该把like关键字换成regexp关键字,因为由MySQL提供的模式匹配的其他类型是使用扩展正则表达式。当你对这类模式进行匹配测试时,使用REGEXP和NOT REGEXP操作符(或RLIKE和NOT RLIKE,它们是同义词)。mysql> select * from Person where City REGEXP '[L]';+----+----------+-----------+--------------+--------+------+| id | LastName | FirstName | Address | City | Year |+----+----------+-----------+--------------+--------+------+| 1 | Adams | John | abc | London | 1970 || 2 | sam | John | OXfordStreet | London | 1970 || 4 | Fred | John | OXfordStreet | London | 1970 || 6 | Adams | John | OXfordStreet | London | 1970 |+----+----------+-----------+--------------+--------+------+4 rows in set (0.03 sec)
转载于:https://www.cnblogs.com/bzggood/p/6196927.html