在MySQL中,我试图找到值与模式匹配的行。在我的数据中,我使用的模式是401.%,402。%,403。%,404。%和405.%。换句话说,我试图找到401和405之间的任何浮点数。此外,这些数字存储为varchar。这是一个字符串。到目前为止,我已经尝试了以下代码,但是徒劳无功:
select * from my_table where my_column like '401.%'
等等。
你能想出一种让这项工作的方法吗?感谢您的帮助。
答案 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中展开循环