在java中,请问下面的输出是
public class Z1 {
public static void main(String[] args) {
String str = "0123456789".substring(1,3);
System.out.println(str);
}
}
在mysql中,请问下面的结果是
select substring('0123456789',1,3);
- 在java中讲究下标,且不包含最后一个下标,也就是[1,3),所以(1,3)的截取结果是12,表示截取下标为[1,3)的子串。
- 在mysql中讲究行,所以这里1表示第几个数,也就是我们日常的习惯。而且第二个字段表示截取的长度,而不是第几个数,所以上面的结果是012,表示从第一个数开始,截取3个字符。
衍生问题:mysql中limt 0,2
和limit 10
代表的含义
- limti 10 比较好理解,代表前10行
- limit 0,2 有点特殊,0代表第1行,2表示返回两行,等价limit 2