我四处看了看,没找到我想要的东西,所以我来了.

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. 

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

Mysql相关问答推荐

try 使用TypeORM创建新表时出现SQL语法错误

同一类型对象之间的多对多关系

SQL:创建新列并将现有表中的值追加到新创建的列中

返回包含某一列的分组最大值的行,说明列中的重复值

我可以在姓名和姓名日期之间进行搜索吗?

在MySQL查询中查找和替换表内的值

按特定顺序匹配 EventS 和下一个 EventA 之前的第一个 Event 之间的记录

根据名称将值从一个字段复制到不同记录的同一字段

如何同时从同一个表中 Select 从 SQL 表中删除行

如何 Select 具有最新的 2 个日期字段的行?

MySQL 1292 截断不正确的日期时间值:'2020-09-11T08:32-50Z'

MySql中的可见索引和不可见索引是什么

MySQL Group By 和 Sum 其他列的总值

MySQL使用多列 Select 重复记录

mysql 按日期 Select 总和组

如何将 MySQL 5.7 更新到新的 MySQL 8.0?

如何存储重复日期牢记夏令时

Mysql:创建表时将DATETIME的格式设置为'DD-MM-YYYY HH:MM:SS'

表被指定了两次,既作为更新的目标,又作为 mysql 中数据的单独源

在 MySQL Workbench 中导出超过 1000 条记录的查询结果