我需要使用 MYSQL REGEXP 编写一个查询,该查询将找到具有特定列以 11 或 12 等开头的行。我知道我可以使用 LIKE 或 LEFT(####,2) 但我想使用 REGEXP 选项。我的数据存储为 110001、122122、130013a 等。
编辑 1:
为了表达的更清楚,我想表达一下
SELECT * FROM table WHERE column LIKE '11%' or column LIKE '12%' or column LIKE '30%'"
使用正则表达式
谢谢!
最佳答案
要匹配以任意两位数字开头的行,您可以使用:
SELECT *
FROM yourtable
WHERE yourcolumn REGEXP '^[0-9][0-9]';
如果您只想允许以 11
、12
或 30
开头的行,那么您可以使用这个:
SELECT *
FROM yourtable
WHERE yourcolumn REGEXP '^(11|12|30)';
这将无法在列上使用索引,因此它可能比使用 LIKE 慢。
关于MySQL REGEXP 用于以开头的数字,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3712685/