MySQL:找到与数字模式匹配的

时间:2014-03-26 02:48:51

标签: mysql

在MySQL中,我试图找到值与模式匹配的行。在我的数据中,我使用的模式是401.%,402。%,403。%,404。%和405.%。换句话说,我试图找到401和405之间的任何浮点数。此外,这些数字存储为varchar。这是一个字符串。到目前为止,我已经尝试了以下代码,但是徒劳无功:

select * from my_table where my_column like '401.%'

等等。

你能想出一种让这项工作的方法吗?感谢您的帮助。

2 个答案:

答案 0 :(得分:2)

MySQL非常适合将数字转换为字符串。所以,你可以尝试这样的事情:

where my_column + 0 >= 401 and my_column < 406

当然,这不会处理前三个字符后出现错误字符的情况。但它可能足以满足您的目的。

编辑:

如果你真的想为此使用索引,那么请执行:

where my_column >= '401' and my_column < '406' and
      my_column + 0 >= 401 and my_column < 406

前两个字符串比较应该利用索引。

答案 1 :(得分:2)

select * from my_table where my_column like '401.%' or my_column like '402.%' or my_column like '403.%' or my_column like '404.%' or my_column like '405.%'

到目前为止应该是最好的...在SQL中展开循环