0

我正在尝试制作电影列表。首先,我有一个查询,可以获取电影中的所有首字母:

SELECT DISTINCT LEFT(film_title, 1) FROM ms_films ORDER BY film_title

其次,我有一个查询选择所有以特定字母开头的电影:

SELECT * FROM ms_films WHERE film_title LIKE 'H%'

当然,很多电影都以“The”或荷兰语中的“De”开头。有什么办法可以从这两个查询中排除这些起始词?

基本上,像“接下来的三天”这样的电影应该在两个查询中归类在 N 下。

4

2 回答 2

3

您可以使用REPLACE删除它们

SELECT * FROM ms_films WHERE REPLACE(film_title, "The", "") LIKE 'H%'

显然,这会删除所有出现的 The,但在您的情况下应该没关系。

如果您需要更复杂的搜索模式,您也可以使用REGEXP(或其别名RLIKE)而不是LIKE.

于 2010-12-19T21:08:46.843 回答
1

如果这是您的应用程序中的常见任务,我建议引入一个 CHAR(1) 列,其中将存储标题的第一个(实际)字母。您可以在此列上创建一个索引,这将非常快,因为它只有一个字节。

于 2010-12-19T21:12:09.397 回答