我正在编写以下语句来选择以一系列字符开头的名称。
select name from db.table where name like '[c-e]%';
该声明没有给我任何回报。但是当我将其更改为:
select name from db.table where name like 'c%';
它返回记录。
问题是什么 ?
@juergen d 是对的,但是需要进行一些更改,因为您想检查从范围 [cd] 开始的所有名称,所以
select name from db.table where name REGEXP '^[c-e].+';
“^”表示开始时匹配必须匹配范围[ce]
您应该REGEXP
用作:
SELECT name FROM db.table where name REGEXP '[c-e].+';
正如其他人所说,您可以使用REGEXP
; 但是当你想要一系列起始字符时,你也可以这样做:
SELECT name FROM db.table WHERE name >= 'c' AND name < 'f';
这可能会更快,因为它可以利用name
字段中的索引来避免完全扫描。