【发布时间】:2014-10-29 10:57:03
【问题描述】:
我有一个 table specialization(id, name),其中 name 是一个带有索引的 varchar。当我使用 like 运行查询时,我得到空结果,而如果我在查询中使用 =,它会给我准确的结果。
我的查询如下:
select * from specialization where name like 'Anesthesiology';
这个返回空集
select * from specialization where name = 'Anesthesiology';
这会返回一个结果集。
为什么会这样?
【问题讨论】:
-
我很确定答案就在这个页面上:dev.mysql.com/doc/refman/5.7/en/case-sensitivity.html。这很复杂,取决于字符串中的排序规则和可能的扩展字符。
-
你是直接在mysql里试的吗?如果名称正好是
'Anesthesiology',它应该可以工作。我刚刚在自己的数据库上尝试过,它可以工作。 -
是的,它有效。 sqlfiddle.com/#!2/75b875/1
-
@lolka_bolka:是的,刚刚发现在 db 中它被存储为“Anesthesiology”。我的错。感谢您提供线索。