我正在尝试编写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而不是另一种的最佳方法。是否有正则表达式方法可行?
答案 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