0

无论是在语言方面还是在 mysql 中,我都对正则表达式不太满意。

你能帮我写一个查询吗?

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

数据格式如下:

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

我必须从该表中获取与给定 Stock Number 匹配的记录,即3346

SELECT * FROM table_name WHERE col_name REGEXP ?

我怎么能这样做?

4

1 回答 1

2

你要:

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

分部分取:

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

因此,上面的表达式匹配任何以文字开头的字符串[#3346]。碰巧,为此目的,您甚至不需要使用正则表达式,因为简单的模式匹配就可以了:

WHERE col_name LIKE '[#3346]%'

但是,即使您没有创建数据库,我强烈建议您通过拆分为三列来规范化数据结构。col_name

于 2012-05-18T10:55:18.887 回答