我正在尝试制作电影列表。首先,我有一个查询可以获得电影中的所有首字母:
SELECT DISTINCT LEFT(film_title, 1) FROM ms_films ORDER BY film_title
其次我有一个查询选择所有以特定字母开头的电影:
SELECT * FROM ms_films WHERE film_title LIKE 'H%'
当然,相当一部电影的开头是'''或荷兰语'De'。有什么方法可以从这两个查询中排除那些起始单词吗?
基本上,像“接下来的三天”这样的电影应该在两个查询中的N下分类。
答案 0 :(得分:3)
您可以使用REPLACE
删除它们
SELECT * FROM ms_films WHERE REPLACE(film_title, "The", "") LIKE 'H%'
显然这会删除所有出现的,但在你的情况下它应该无关紧要。
如果您需要更复杂的搜索模式,您还可以使用REGEXP
(或其别名RLIKE
)代替LIKE
。
答案 1 :(得分:1)
如果这是您的应用程序中的常见任务,我建议引入CHAR(1)列,其中将存储标题的第一个(实际)字母。您可以在此列上创建一个非常快的索引,因为它只是一个字节。