MySQL REGEXP,用于以开头的数字

MySQL REGEXP,用于以开头的数字,mysql,regex,Mysql,Regex,我需要使用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%'" 使用REGEXP 谢谢 要匹配以任意两位数字开头的

我需要使用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%'"     
使用REGEXP


谢谢

要匹配以任意两位数字开头的行,可以使用:

SELECT *
FROM yourtable
WHERE yourcolumn REGEXP '^[0-9][0-9]';
如果只允许以11、12或30开头的行,则可以使用以下命令:

SELECT *
FROM yourtable
WHERE yourcolumn REGEXP '^(11|12|30)';

这将无法在列上使用索引,因此可能比使用LIKE慢。

如果值以11或12开头,LIKE的性能将优于REGEXP。根据自己喜欢的内容编写代码是一种错误的做法,而性能最好的是什么……您所说的“11”或“12”等是什么意思。?你是说任何以两个数字开头的东西吗?有没有以1开头,后面跟着另一个数字的?除了零,还有两位数吗?还有什么?哇,伙计,你们真快。我的意思是,我只需要列1以11、12、32开头的行,或者我抛出的2位数字的任意组合。谢谢@OMG小马:虽然我同意,但也有可维护性的问题。如果一个特定的构造更容易由一个组维护,那么如果应用程序不需要它,那么牺牲一些性能可能是值得的。只是提供一个理由,说明为什么一个团队可能会选择性能不好的东西。@JYelton:我理解,但如果设计能够解决这个问题,这可能会更容易处理。马克,谢谢,但这不是我想要的。我需要像“SELECT*FROM table”这样的东西,其中列像“11%”或列像“12%”或列像“30%”用REGEXP表示。