在SQL中的varchar之间获取一个数字

时间:2015-08-10 05:56:16

标签: mysql

我试图通过使用SQL查询来获取数字。我需要先获取该号码,然后才能说出“#LEADS'

我可能会遇到的条目示例:
PDIP300MIL-14LEADS
QFN6X6-40LEADS
QFN6X6-240LEADS
WSOIC/16LEADS

因此您可以看到前缀可以是任意长度。有时,分隔符为/-。但修复后缀是LEADS

旁注。其他条目类似于ICL7665 BCSA,因此它没有潜在客户,因此必须跳过它。

编辑:如果我不清楚,我很抱歉。我试图抓住的那个是分隔符和潜在客户之间的数字。

所以在我试图抓住的四个例子中:14,40,240,16。

2 个答案:

答案 0 :(得分:2)

您可以执行使用substring_index

之类的操作
select 
  substring_index(
    substring_index(
       replace(col,'/','-')
      ,'LEADS'
      ,1),
    '-'
    ,-1
  )
from table1

DEMO

要跳过条目,您可以使用having子句

过滤结果
select 
  substring_index(
    substring_index(
       replace(col,'/','-')
      ,'LEADS'
      ,1),
    '-'
    ,-1
  ) num 
from table1
having num * 1 > 0

DEMO 2

答案 1 :(得分:0)

https://dev.mysql.com/doc/refman/5.1/en/regexp.html

SELECT * FROM table WHERE字段REGEXP' [0-9] + LEADS $'