SQLite 没有 left 函数,使用PDO的 sqliteCreateFunction 来创建自定义函数时,发现创建成功,但是无论如何都在SQL语句中不能使用,总是报错 "SQLSTATE[HY000]: General error: 1 near "(": syntax error"
DB::connection('sqlite')->getPdo()->sqliteCreateFunction('left', function($str, $len){
if ($str != '') {
return substr($str, 0, $len);
}
return '';
});<br></br>
几番调试之后,发现 left 是 SQLite 的保留字(LEFT JOIN),所以只要换名字,例如 myLeft 就可以了。
另外,left 的功能可以使用SQLite中的substr函数来代替。