我有一个字符串
A323-541-389
我想得到第二个“ - ”前面的字符,在这种情况下应该是1
。
如何在MySQL中获取1
?
第二次' - '然后左转吗? 如何搜索第二个' - '而不是第一个? -
答案 0 :(得分:3)
select substring(substring_index("A323-541-389","-",2),-1);
也可能有其他方式。
mysql> select substring(substring_index("A323-541-389","-",2),-1);
+-----------------------------------------------------+
| substring(substring_index("A323-541-389","-",2),-1) |
+-----------------------------------------------------+
| 1 |
+-----------------------------------------------------+
1 row in set (0.00 sec)
答案 1 :(得分:1)
那将是
select right(substring_index('A323-541-389', '-', 2), 1)
- 请注意,您的字符串应始终包含至少两个-
符号,否则这将无效。请参阅此fiddle。
答案 2 :(得分:0)
从聊天评论看,如果字段的值在第二个“ - ”之前为1,则显示该字段的值。
如果是这样,你可以做这个基本的SQL: -
SELECT *
WHERE LENGTH(col1) - LENGTH(REPLACE(col1, '-', '')) >= 2
AND RIGHT(SUBSTRING_INDEX(col1, '-', 2), 1) = '1'
但是你可以使用正则表达式: -