[分享] 在sqlite中,没有left函数

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函数来代替。