在两个值之间筛选mysql表中的数据
我在mysql中有一个表,其中名称按如下自动递增顺序存储在两个值之间筛选mysql表中的数据,mysql,Mysql,我在mysql中有一个表,其中名称按如下自动递增顺序存储 344100.htm 344101.htm --- --- 477201.htm 477202.htm -- --- 888999.htm 我想过滤掉所有包含200.htm到999.htm之间数据的行,作为最后三位,范围从200到999 我尝试使用like,但在这种情况下,我无法给出>,我也尝试了使用like,但它不起作用 SELECT * FR
344100.htm
344101.htm
---
---
477201.htm
477202.htm
--
---
888999.htm
我想过滤掉所有包含200.htm到999.htm之间数据的行,作为最后三位,范围从200到999
我尝试使用like,但在这种情况下,我无法给出>,我也尝试了使用like,但它不起作用
SELECT * FROM `tablea` WHERE `name` LIKE '%200.htm' and like '%999.htm' LIMIT 0 , 30
以下查询将为您提供所需的输出:
select *
from
tablea
where
SUBSTRING(name, -7, 3) > 200
and
SUBSTRING(name, -7, 3) < 999
选择*
从…起
表
哪里
子字符串(名称,-7,3)>200
及
子字符串(名称,-7,3)<999
我无法更新用户2629562的答案,所以这是我的版本
若数据总是像在示例中一样定义,那个么用户2629562的另一个选择是从右边选择第七个字符
从表A中选择*,其中[2,3,4,5,6,7,8,9]中的子字符串(名称,-7,1)代码>
或将('.',名称)定位为点位置
从表A中选择*其中子字符串(名称,(定位('.',名称)-3),1)位于[2,3,4,5,6,7,8,9]代码>