mysql – 在INT字段上执行LIKE比较

我对SQL来说相当新鲜,我正在尝试获得与productID的用户输入相匹配的产品的完整列表。就像是:

SELECT ProductID, ProductName FROM Products WHERE ProductID LIKE '%15%'

我希望列出所有匹配的产品,如:
15,150,2154等

不幸的是,我遇到问题,因为productID字段是INT而不是字符串。有没有一些比较简单的方法呢?

你可以把CAST字段的字符串:

 ... WHERE CAST(ProductID as CHAR) LIKE '%15%'

这对于性能来说是非常糟糕的,因为mySQL无法使用它为INT列创建的任何索引。但是,即使在varchar字段上完成,LIKE也总是很慢:没有办法可以加快一个LIKE查询的索引。

可能值得一个第二个varchar列反映int列的值,并在该对象上执行LIKE – 您必须进行基准测试,以确定它是否会有所作为。

翻译自:https://stackoverflow.com/questions/8422455/performing-a-like-comparison-on-an-int-field

转载注明原文:mysql – 在INT字段上执行LIKE比较