从SELECT查询中排除起始单词

时间:2010-12-19 21:03:59

标签: mysql select words

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

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

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

SELECT * FROM ms_films WHERE film_title LIKE 'H%'

当然,相当一部电影的开头是'''或荷兰语'De'。有什么方法可以从这两个查询中排除那些起始单词吗?

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

2 个答案:

答案 0 :(得分:3)

您可以使用REPLACE删除它们

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

显然这会删除所有出现的,但在你的情况下它应该无关紧要。

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

答案 1 :(得分:1)

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