我在语言方面和mysql中对正则表达式都不太满意。
你能帮我写一个查询吗?
我有一个数据库表,一列有三种数据库存号,名称和价格。我感兴趣的是股票编号。我没有创建这个数据库设计,所以请耐心等待。
数据采用以下格式:
[#3346] - $3,500.00, some name
我必须从此表中获取与给定股票编号匹配的记录,即3346
。
SELECT * FROM table_name WHERE col_name REGEXP ?
我怎么能这样做?
答案 0 :(得分:2)
你想:
WHERE col_name REGEXP '^\\[#3346\\]'
将其分成几部分:
^
表示字符串的开头\[
是一个文字[
字符(但在字符串中,\
本身需要与另一个\
转义)#3346
是文字字符串#3346
\]
是一个文字]
字符(但在字符串中,\
本身需要与另一个\
转义)因此,上面的表达式匹配任何以文字[#3346]
开头的字符串。实际上,为了这个目的,您甚至不需要使用正则表达式,因为simple pattern match可以解决这个问题:
WHERE col_name LIKE '[#3346]%'
然而,即使您没有创建数据库,我强烈建议您通过将col_name
拆分为三列来normalise数据结构。