什么是mysql正则表达式查询

时间:2012-05-18 10:50:54

标签: mysql regex

我在语言方面和mysql中对正则表达式都不太满意。

你能帮我写一个查询吗?

我有一个数据库表,一列有三种数据库存号,名称和价格。我感兴趣的是股票编号。我没有创建这个数据库设计,所以请耐心等待。

数据采用以下格式:

[#3346] - $3,500.00, some name

我必须从此表中获取与给定股票编号匹配的记录,即3346

SELECT * FROM table_name WHERE col_name REGEXP ?

我怎么能这样做?

1 个答案:

答案 0 :(得分:2)

你想:

WHERE col_name REGEXP '^\\[#3346\\]'

将其分成几部分:

  • ^表示字符串的开头
  • \[是一个文字[字符(但在字符串中,\本身需要与另一个\转义)
  • #3346是文字字符串#3346
  • \]是一个文字]字符(但在字符串中,\本身需要与另一个\转义)

因此,上面的表达式匹配任何以文字[#3346]开头的字符串。实际上,为了这个目的,您甚至不需要使用正则表达式,因为simple pattern match可以解决这个问题:

WHERE col_name LIKE '[#3346]%'

然而,即使您没有创建数据库,我强烈建议您通过将col_name拆分为三列来normalise数据结构。