Mysql字符串截取函数SUBSTRING的用法说明?
Oracle截取字符串的函数为:substr(字段名,起始位置,字符串长度) 起始位置可从0开始,截取结果和从1开始一样。MySql截取字符串的函数为:substring(字段名,起始位置,字符串长度) 起始位置必须从1开始,0开始不能获取到数据。
MySQL截取和拆分字符串函数用法示例?
MySQL字符串函数substring:字符串截取
MySQL 字符串截取函数:left(), right(), substring(), substring_index()。还有 mid(), substr()。其中,mid(), substr() 等价于 substring() 函数,substring() 的功能非常强大和灵活。
1. 字符串截取:left(str, length)
mysql> select left('example.com', 3);
+-------------------------+
| left('example.com', 3) |
+-------------------------+
| exa |
+-------------------------+
2. 字符串截取:right(str, length)
mysql> select right('example.com', 3);
+--------------------------+
| right('example.com', 3) |
+--------------------------+
| com |
+--------------------------+
实例:
#查询某个字段后两位字符
图片来源:网络
select right(last3, 2) as last2 from historydata limit 10;
#从应该字段取后两位字符更新到另外一个字段
update `historydata` set `last2`=right(last3, 2);
如何写一个能匹配字符串的mysql语句?
mysql的字符串匹配
需求表数据如下:
Java代码
mysql> select * from test;
+----+-------+
| id | name |
+----+-------+
| 1 | abc** |
+----+-------+
1 row in set (0.00 sec)
我想匹配 abcde,也就是一个*代表一个字符
分析:
在正则中*代表0个或者多个,因此此处的存储有问题,应该存储.或者_那么查询sql可以通过like和REGEXP 来实现
结论:
1.采用like
Java代码
mysql> select * from test where 'abcde' like replace(name,'*','_');
+----+-------+
| id | name |
+----+-------+
| 1 | abc** |
+----+-------+
1 row in set (0.01 sec)
先替换成_然后在like 匹配
2.采用REGEXP
Java代码
mysql> select * from test where 'abcde' regexp replace(name,'*','.');
+----+-------+
| id | name |
+----+-------+
| 1 | abc** |
+----+-------+
1 row in set (0.02 sec)
替换成.然后在匹配