SUBSTRING 必须是基于 1 的。
The MySQL手册 http://dev.mysql.com/doc/refman/5.0/en/string-functions.html#function_substring states:
对于所有形式的 SUBSTRING(),第一个字符的位置
要从中提取子字符串的字符串被视为
1.
With Oracle http://docs.oracle.com/cd/B19306_01/server.102/b14200/functions162.htm:
SELECT SUBSTR('ABCDEFG',3,4) "Substring"
FROM DUAL;
Substring
---------
CDEF
来自Transact-SQL 手册 http://msdn.microsoft.com/en-us/library/ms187748.aspx:
SELECT LastName, SUBSTRING(FirstName, 1, 1) AS Initial
FROM Person.Person
WHERE LastName like 'Barl%'
ORDER BY LastName
您可以从这些示例中看到,它们也正在使用基于一的(但是,Oracle 将假设1
当给予0
).
只需更改您的substring
参数为't.sortTitle', 1, 1
它会正常工作。