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

如何使用LIKE通配符在列中搜索(不区分大小写)?

丌官积厚
2023-03-14
问题内容

我环顾四周,却找不到我想要的东西,所以去了。

SELECT * FROM trees WHERE trees.`title` LIKE  '%elm%'

这很好用,但是如果树被命名为Elm或ELM等则不行。

如何使此通配符搜索的SQL大小写不敏感?

我正在使用MySQL 5和Apache。


问题答案:
SELECT  *
FROM    trees
WHERE   trees.`title` COLLATE UTF8_GENERAL_CI LIKE '%elm%'

实际上,如果添加COLLATE UTF8_GENERAL_CI到列的定义中,则可以忽略所有这些技巧:它将自动运行。

ALTER TABLE trees 
 MODIFY COLUMN title VARCHAR(…) CHARACTER 
 SET UTF8 COLLATE UTF8_GENERAL_CI.

这还将重建该列上的所有索引,以便它们可用于查询而无需前导’%’



 类似资料:
  • 问题内容: 我正在将Java应用程序的ORM的Hibernate用于Oracle数据库(并不是数据库供应商很重要,有一天我们可能会切换到另一个数据库),我想根据用户提供的字符串从数据库中检索对象。例如,在搜索人员时,如果用户正在寻找居住在“ fran”中的人员,我希望能够将其人员提供给旧金山。 SQL不是我的强项,我更喜欢Hibernate的构建代码,而不是硬编码的字符串。谁能指出正确的方向,说明

  • 问题内容: 我正在尝试使用JavaScript中的两个字符串进行不区分大小写的搜索。 通常情况如下: 该标志将不区分大小写。 但是我需要搜索第二个字符串。没有标志,它可以完美地工作: 如果我在上面的示例中添加标志,它将搜索searchstring而不是变量“ searchstring”中的内容(下一个示例不起作用): 我该如何实现? 问题答案: 是的,使用而不是。调用的结果将返回匹配自身的实际字符

  • 如何在索引字段上搜索cypher 2.0/Neo4j 2.1.7不区分大小写? 正则表达式不使用索引

  • 本文向大家介绍如何在Oracle中执行不区分大小写的搜索?,包括了如何在Oracle中执行不区分大小写的搜索?的使用技巧和注意事项,需要的朋友参考一下 问题: 您要在Oracle中执行不区分大小写的搜索。 解 处理案例问题的一种方法是使用内置的UPPER和LOWER函数。这些函数使您可以强制单个操作对字符串进行大小写转换 示例 在上面的示例中,将full_name1和full_name2首先转换为

  • 问题内容: 查询如何 被优化? 这里的主要问题是第一个通配符,它​​阻止DBMS使用索引。 编辑:此外,某字段值是纯字符串(不是一段文本),因此无法执行全文搜索。 问题答案: 两种方式: (1)使用内存中的表,它可以非常快速地运行。 (2)制定比更好的索引和搜索算法。如果不了解您的问题,就不可能对此提出任何建议。 正如您所指出的那样,%bar%模式可确保对每个查找进行表扫描,从而使数据库软件中任何

  • 问题内容: 如何以 不区分大小写的 方式在文件中搜索单词? 例如 如果我正在文件中搜索,如果文件包含更新,则搜索应将其选中并将其视为匹配项。 问题答案: 可以在忽略大小写的情况下检查两个字符串是否相等。它甚至可以与Unicode一起使用。有关更多信息,请参见http://golang.org/pkg/strings/#EqualFold。 http://play.golang.org/p/KDdI