我一直在尝试(没有成功)构造一个 MYSQL 查询,该查询将选择一组具有以单个字母字符开头的“标题”字段但忽略第一个单词(如果是“The”、“An”)的记录或“A”。我已经找到了很多针对查询的 ORDER BY 部分执行此操作的示例,但这是我需要执行此操作的初始 WHERE 部分,因为如果未找到正确的记录,则顺序无关紧要。使用
WHERE title LIKE "R%"
只会给我以这个作为第一个字母的标题(例如“Robin Hood”),但不会与“The Red House”匹配。我想我需要某种 REGEX,但我似乎无法让它工作。
例如,给定以下电影片名,
道路之家
王者归来
妈妈咪呀
阿尔戈
泰坦尼克号
一条河流穿过它
选择以“R”开头的电影片名将返回以下内容:
王者归来
一条河流穿过它
客栈
(其他字段省略)
最佳答案
最简单的方法是以编程方式将查询扩展为类似
SELECT
...
WHERE
title LIKE 'R%'
OR title LIKE 'The R%'
OR title LIKE 'A R%'
OR title LIKE 'An R%'
...
这应该比 REGEX 表现更好,因为它将能够使用索引,而 REGEX 永远不会。
顺便说一句:执行此操作的规范方法是将文章存储在单独的字段中。
关于Mysql SELECT 查询名称忽略第一个单词,如果它是 "the", "a", "an"等,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14517984/