在MySQL中选择字符串末尾的双字母和单字母

时间:2016-04-23 19:50:27

标签: mysql regex

我正在尝试编写MySQL select语句,我试图根据字符串的最后一个字母或多个字母选择值。问题是......这些值在字符串的末尾有双字母,在得到结果时我无法区分它们。

例如......我在表格中有以下2个值

1. Mens 3's AA
2. Mens 3's A

当我只想返回上面的#2时,我当前使用的查询返回两个值。这是查询:

SELECT divisions.div_id, divisions.div_lname
FROM divisions
WHERE LEFT(divisions.div_lname,1) = "M"
AND divisions.div_lname LIKE '%3%'
AND RIGHT(divisions.div_lname,1) = 'A'
ORDER BY divisions.div_nop, divisions.div_order 

当我在字符串末尾包含重复字母的值时,我真的需要理解选择1而不是另一种的最佳方法。是否有正则表达式方法可行?

1 个答案:

答案 0 :(得分:1)

尝试使用这样的SUBSTRING_INDEX(),它将返回空格后的最后一个块。因此它不会返回具有' AA' ...且只返回行的行与' A'

SELECT divisions.div_id, divisions.div_lname
FROM divisions
WHERE LEFT(divisions.div_lname,1) = "M"
AND divisions.div_lname LIKE '%3%'
AND SUBSTRING_INDEX(divisions.div_lname,' ',-1) = 'A'
ORDER BY divisions.div_nop, divisions.div_order