2010-12-19 41 views
0

我想要拍电影的列表。首先我有一个查询,会从电影所有的第一个字母:排除开始的话从SELECT查询

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

其次,我已经得到了,其选择与特定字母开头的所有电影的查询:

SELECT * FROM ms_films WHERE film_title LIKE 'H%' 

Ofcourse很多电影都以'The'或荷兰语为'De'开头。有什么办法可以从这两个查询中排除这些开始的单词吗?

基本上一部电影像“未来三天”应该根据N的两个查询进行分类。

回答

3

您可以使用REPLACE删除它们

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

显然,这将删除的所有事件,但它不应该在你的情况下,无所谓。

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

+2

缺点:没有索引将用于该查询。 – Mchl 2010-12-19 21:15:08

+0

@Mchl:值得注意。 – nico 2010-12-19 21:30:15

1

如果这是你的应用程序的共同任务,我会建议引入CHAR(1)列,其中标题的第一个(实际)的信件将被保存。你可以在这个列上创建一个索引,因为它只有一个字节,所以速度会很快。

+1

非常好的建议。我会做的。谢谢。 – Bob 2010-12-19 21:20:19