使用regexp w / mysql时错误的模式..?

时间:2013-12-03 04:40:10

标签: mysql regex

我有一个非常简单的mysql表&小。

award_id bigint(11) primary key auto_inc  
award_receip varchar(160) NULL  
date_receip DATETIME NOT NULL  

当我进行以下查询时,我没有得到预期的结果。

SELECT * FROM awards WHERE award_id REGEXP '("1|6|3")'

结果集中只有award_id 6。 主键全部连续成千上万。

我的模式中阻止award id 1&的错误是什么? award id 3显示在结果中?

谢谢!

1 个答案:

答案 0 :(得分:4)

你根本不应该使用正则表达式。 award_idBIGINT,因此请使用IN

SELECT * FROM awards WHERE award_id IN (1,6,3);

为了完整起见,如果一个人足够悲伤使用正则表达式,那么许多可能的模式中有两个是:

SELECT * FROM awards WHERE award_id RLIKE '^(1|6|3)$';
SELECT * FROM awards WHERE (award_id LIKE '1' OR award_id LIKE '6' OR award_id LIKE '3');

但是,不要使用它们,只需使用IN