mysql根据字符串字段中某个字符取前段字符并判断是否为数字是数字则取后段
时间: 2024-03-16 22:48:05 浏览: 130
您好,针对您的问题,您可以使用MySQL中的SUBSTRING_INDEX函数来提取字符串字段中的某个字符前后的字符串。具体地,您可以使用以下的SQL语句来实现您的需求:
```
SELECT
CASE
WHEN SUBSTRING_INDEX(your_column, 'your_character', 1) REGEXP '^[0-9]+$'
THEN SUBSTRING_INDEX(your_column, 'your_character', -1)
ELSE SUBSTRING_INDEX(your_column, 'your_character', 1)
END AS result
FROM your_table;
```
其中,your_column是您要处理的字符串字段,your_character是您要查找的字符,your_table是您要查询的表名。这个SQL语句会根据您要查找的字符在字符串中的位置,将字符串分为前后两段,并判断前半部分是否为数字,如果是数字,则返回后半部分,否则返回前半部分。
请注意将SQL语句中的your_column、your_character和your_table替换为您实际的字段名和表名。
相关问题
mysql在sensor_name字段中查找最后一个 - 字符并根据查找的位置判断前段字符串为数字则返回后段否则返回前段
您好,针对您的问题,您可以使用MySQL中的SUBSTRING_INDEX函数和REVERSE函数来提取字符串字段中的最后一个"-"字符前后的字符串,并判断前半部分是否为数字。具体地,您可以使用以下的SQL语句来实现您的需求:
```
SELECT
CASE
WHEN SUBSTRING_INDEX(REVERSE(SUBSTRING_INDEX(REVERSE(sensor_name), '-', 1)), '-', 1) REGEXP '^[0-9]+$'
THEN SUBSTRING_INDEX(sensor_name, '-', -1)
ELSE SUBSTRING_INDEX(sensor_name, '-', 1)
END AS result
FROM your_table;
```
其中,sensor_name是您要处理的字符串字段,your_table是您要查询的表名。这个SQL语句会根据字符串中最后一个"-"字符的位置,将字符串分为前后两段,并判断前半部分是否为数字,如果是数字,则返回后半部分,否则返回前半部分。
请注意将SQL语句中的sensor_name和your_table替换为您实际的字段名和表名。
mysql如何根据在字符串某个字符最后一个做字符串字段前段截取
你可以使用MySQL内置函数SUBSTRING_INDEX()来根据某个字符截取字符串的前半部分。该函数的语法为:
```
SUBSTRING_INDEX(str, delim, count)
```
其中,str是要进行截取的字符串,delim是分隔符,count指定截取的段数。
如果要根据某个字符最后一个位置截取前半部分,可以将count设置为-1。例如,假设你有一个字符串字段name,其值为"John Smith",你想要根据空格截取前半部分,可以使用以下SQL语句:
```
SELECT SUBSTRING_INDEX(name, ' ', -1) FROM your_table;
```
这将返回"John"作为结果。
阅读全文