一尘不染

SQL之类的搜索字符串以

sql

学习SQL。有一个带有标题的简单桌上游戏。我想根据标题进行搜索。如果我有一个名为的游戏Age of Empires III: Dynasties,并且LIKE与parameter一起使用Age of Empires III: Dynasties,则一切正常,搜索将返回具有该名称的记录。但是,如果使用搜索Age of Empires III,它不会返回任何记录:

SELECT * from games WHERE (lower(title) LIKE 'age of empires III');

这不会返回任何内容。我应该使用其他东西代替LIKE吗?

我正在使用MySQL。


阅读 167

收藏
2021-03-17

共1个答案

一尘不染

SELECT * from games WHERE (lower(title) LIKE 'age of empires III');

上面的查询不返回任何行,因为您要查找的是“帝国时代III”确切的字符串,该字符串在任何行中都不存在。

因此,为了与具有不同'age of empires'子字符串的字符串匹配,您需要使用'%your string goes here%'

有关mysql字符串比较的更多信息

你需要试试这个

SELECT * from games WHERE (lower(title) LIKE '%age of empires III%');

在Like中,'%age of empires III%'它将在您的行中搜索任何匹配的子字符串,并将在结果中显示。

2021-03-17