从两个值之间的mysql表中过滤数据

时间:2013-10-17 07:38:19

标签: mysql

我在mysql中有表,其中名称以自动增量顺序存储,如此

     344100.htm
     344101.htm
     ---
     ---
     477201.htm
     477202.htm
     --
     ---
     888999.htm

我想过滤掉包含200.htm到999.htm之间数据的所有行,最后三位数字从200到999不等。

我试着用但是在那种情况下我不能给>我也试过但它没有用

 SELECT * FROM  `tablea` WHERE  `name` LIKE  '%200.htm' and like '%999.htm' LIMIT 0 , 30

2 个答案:

答案 0 :(得分:1)

以下查询将为您提供所需的输出:

   select * 
   from 
      tablea 
   where 
      SUBSTRING(name, -7, 3) > 200 
   and 
      SUBSTRING(name, -7, 3) < 999

答案 1 :(得分:1)

我无法upvote user2629562答案,所以这是我的版本。

如果数据总是像样本中一样定义,则用户2629562的其他选项是从右侧检查第7个字符。

SELECT * FROM表A WHERE SUBSTRING(name, -7, 1) IN [2,3,4,5,6,7,8,9];

LOCATE('.',name) as dotPosition

SELECT * FROM表A WHERE SUBSTRING(name, (LOCATE('.',name)-3), 1) IN [2,3,4,5,6,7,8,9];