当前位置: 首页 > 面试题库 >

在INT字段上执行LIKE比较

康鹏云
2023-03-14
问题内容

我对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列创建的任何索引。但是LIKE,即使在varchar字段上进行操作,它也总是很慢:无法通过索引来加快LIKE查询的速度。

可能值得拥有第二varchar列来反映该int列的值并在该列上执行LIKE-您必须进行基准测试以查明它是否会对您有好处。



 类似资料:
  • 本文向大家介绍在INT字段上执行MySQL LIKE比较?,包括了在INT字段上执行MySQL LIKE比较?的使用技巧和注意事项,需要的朋友参考一下 您需要使用方法对INT字段执行比较。语法如下- 为了理解上述语法,让我们创建一个表。以下是创建用于对INT字段执行LIKE比较的表的查询- 在表中插入一些记录,以在INT字段上执行MySQL LIKE比较。插入记录的查询如下- 使用select语句

  • 我需要向MongoDB查询字段的编号:姓名、电话、电子邮件。查询应该支持语法:执行查询的更好方法是什么: 用$或查询字段数 用上述字段的值和该字段的多键索引创建数组字段 示例集合包含以下文档 当我发现所有带有姓名、电话或电子邮件且包含的文档时,应返回文档1和3。

  • 问题内容: 我一直认为您可以在语句中使用它来查询MySQL中的内容。因此,如果我想将一行中的多个字段与1个关键字或字词进行比较: 如果我有一系列要比较的单词: 我不相信语法是正确的。除了类似的东西,是否有一种有效的方法可以编写此代码: 我能正确处理吗? 问题答案: 用这个::

  • 问题内容: 我有以下存储过程,没有编写完整的存储过程,但其中一些是: 我想知道何时我将@course转换为VARCHAR类型,而数据库中的我是INT类型-比较如何进行? 问题答案: 在SQL Server中,两种不同类型之间的比较是这样进行的: 首先,根据数据类型优先级的规则比较这两种类型的优先级: 优先级较低的数据类型将转换为优先级较高的数据类型 接下来,将优先级较低的类型强制转换为优先级较高的

  • 问题内容: 我的索引具有如下所述的数据。 如何在Java中编写Elasticsearch查询。如果我按日期搜索2016-13-01T12:00:00我希望看到每个groupId的最新版本,其indexDate小于或等于搜索日期? 预期输出: 我没有在Elasticsearch的日期字段中看到max函数来实现这一点。 问题答案: 我将首先进行汇总,然后使用子汇总,以降序排序并返回该存储区的第一个文档