我有一个字符串
A323-541-389
我想得到第二个“-”前面的字符,在这种情况下应该是1
。
如何1
在 MySQL 中获得它?
是寻找第二个'-'然后向左吗?
如何寻找第二个'-'而不是第一个?
我有一个字符串
A323-541-389
我想得到第二个“-”前面的字符,在这种情况下应该是1
。
如何1
在 MySQL 中获得它?
是寻找第二个'-'然后向左吗?
如何寻找第二个'-'而不是第一个?
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)
那将是
select right(substring_index('A323-541-389', '-', 2), 1)
- 请注意,您的字符串应始终包含至少两个-
符号,否则这将不起作用。看到这个小提琴。
从聊天评论看来,当第二个“-”之前有一个 1 时,您想要该字段的值。
如果是这样,您可以执行此基本 SQL:-
SELECT *
WHERE LENGTH(col1) - LENGTH(REPLACE(col1, '-', '')) >= 2
AND RIGHT(SUBSTRING_INDEX(col1, '-', 2), 1) = '1'
但是,您可能可以改用正则表达式:-