0
4 / 10  Used

这是在一堆其他文本的中间:

Text text text text
 text text text text
 4 / 10  Used
text text text text

我正在尝试访问4上面示例中的。我试过了:

SELECT * FROM `test`
WHERE CAST(
   SUBSTRING(ltrim(rtrim(substring(`file`, instr(`file`, '  Used') + 6, -12))), 1, 3) 
   AS SIGNED) >= 2

这应该返回该行,因为 4 > 2 但我这个查询没有返回任何内容。我在这里做错了什么?

4

1 回答 1

1

根据要求,这是我的推荐评论:

看起来你总是想从“Used”备份到“4”并取第一个字符。如果是这样,试试这个:

select @foo := locate(" Used ", file), substring(file,@foo - 7,1)
from test; 
于 2012-09-20T22:35:43.227 回答