我对SQL相当陌生,我试图获取与productID用户输入匹配的产品的完整列表。就像是:
SELECT ProductID, ProductName FROM Products WHERE ProductID LIKE '%15%'
我希望列出所有匹配的产品,例如:15、150、2154等
不幸的是,由于productID字段是INT而不是字符串,因此我遇到了问题。是否有一些相对简单的方法可以解决此问题?
您可以CAST将字段输入字符串:
CAST
... WHERE CAST(ProductID as CHAR) LIKE '%15%'
这对性能非常不利,因为mySQL无法利用它为INT列创建的任何索引。但是LIKE,即使在varchar字段上进行操作,它也总是很慢:无法通过索引来加快LIKE查询的速度。
LIKE
可能值得拥有第二varchar列来反映该int列的值并在该列上执行LIKE-您必须进行基准测试以查明它是否会对您有好处。
varchar
int