我们用到的最多的是:查询以特定字符或字符串开头的记录
字符^
用来匹配以特定字符或字符串开头的记录。
例 1
在 tb_students_info 表中,查询 name 字段以“J”开头的记录,SQL 语句和执行过程如下。
mysql> SELECT * FROM tb_students_info -> WHERE name REGEXP '^J'; +----+------+------+------+--------+-----------+ | id | name | age | sex | height | course_id | +----+------+------+------+--------+-----------+ | 4 | Jane | 22 | 男 | 162 | 3 | | 5 | Jim | 24 | 女 | 175 | 2 | | 6 | John | 21 | 女 | 172 | 4 | +----+------+------+------+--------+-----------+ 3 rows in set (0.01 sec)
或者可以使用like:
mysql> SELECT * FROM tb_students_info -> WHERE name like 'J%'; +----+------+------+------+--------+-----------+ | id | name | age | sex | height | course_id | +----+------+------+------+--------+-----------+ | 4 | Jane | 22 | 男 | 162 | 3 | | 5 | Jim | 24 | 女 | 175 | 2 | | 6 | John | 21 | 女 | 172 | 4 | +----+------+------+------+--------+-----------+ 3 rows in set (0.01 sec)
查询不以某些指定字符开头,反查的这种,可以这样解决:
例如:查询item_description不以AUT-、IND、AUTA-、AUTB-、AUTC-、AEBU-、CON-、WDR-、WDF-开头,并且不包含ICON的所有数据
select * from table_name
where item_description not REGEXP ('^(AUT-)|(^IND)|^(AUTA-)|^(AUTB-)|(^AUTC)|^(AEBU-)|^(CON-)|^(WDR-)|^(WDF-)')
and item_description not like '%ICON%';