{"id":"ce4dc6b2a711a9e6","repo":"laravel/framework","slug":"this-database-engine-does-not-support-case-sensiti","errorCode":null,"errorMessage":"This database engine does not support case sensitive like operations.","messagePattern":"This database engine does not support case sensitive like operations\\.","errorType":"exception","errorClass":"RuntimeException","httpStatus":null,"severity":"error","filePath":"src/Illuminate/Database/Query/Grammars/Grammar.php","lineNumber":338,"sourceCode":"     */\n    protected function whereBitwise(Builder $query, $where)\n    {\n        return $this->whereBasic($query, $where);\n    }\n\n    /**\n     * Compile a \"where like\" clause.\n     *\n     * @param  \\Illuminate\\Database\\Query\\Builder  $query\n     * @param  array  $where\n     * @return string\n     *\n     * @throws \\RuntimeException\n     */\n    protected function whereLike(Builder $query, $where)\n    {\n        if ($where['caseSensitive']) {\n            throw new RuntimeException('This database engine does not support case sensitive like operations.');\n        }\n\n        $where['operator'] = $where['not'] ? 'not like' : 'like';\n\n        return $this->whereBasic($query, $where);\n    }\n\n    /**\n     * Compile a \"where null safe equals\" clause.\n     *\n     * @param  \\Illuminate\\Database\\Query\\Builder  $query\n     * @param  array  $where\n     * @return string\n     */\n    protected function whereNullSafeEquals(Builder $query, $where)\n    {\n        return $this->wrap($where['column']).' is not distinct from '.$this->parameter($where['value']);\n    }","sourceCodeStart":320,"sourceCodeEnd":356,"githubUrl":"https://github.com/laravel/framework/blob/bd6b5437e6ad87bb49f9b426724f07a9f64e9683/src/Illuminate/Database/Query/Grammars/Grammar.php#L320-L356","documentation":"The base Grammar::whereLike() throws when $where['caseSensitive'] is true. Only SQLite, MySQL, and Postgres override whereLike to handle case-sensitive matching natively. SQL Server uses the base Grammar, so requesting a case-sensitive LIKE on SQL Server throws, because SQL Server's collation already determines case sensitivity and there is no portable keyword Laravel can emit.","triggerScenarios":"Calling whereLike($column, $value, true) (third arg caseSensitive=true), orWhereLike(..., true), whereNotLike(..., true), or whereNotLike with case sensitivity on a sqlsrv connection.","commonSituations":"Building search filters with whereLike(..., caseSensitive: true) in a package intended to be engine-agnostic, then running against SQL Server. Migrating a MySQL app to SQL Server where the case-sensitive flag was previously honoured.","solutions":["On SQL Server, drop the caseSensitive flag (pass false) and rely on the column collation to control case sensitivity.","If you need guaranteed case sensitivity on SQL Server, alter the column collation to a CS (case-sensitive) collation instead of using the builder flag.","Guard the call: only pass caseSensitive=true on engines whose driver is mysql, sqlite, or pgsql."],"exampleFix":"// before\n$query->whereLike('name', $term, true);\n\n// after (SQL Server friendly)\n$driver = $query->getConnection()->getDriverName();\n$query->whereLike('name', $term, in_array($driver, ['mysql','sqlite','pgsql']));","handlingStrategy":"validation","validationCode":"$driver = $query->getConnection()->getDriverName();\n$caseSensitive = in_array($driver, ['mysql','sqlite','pgsql']) ? $requestedCaseSensitive : false;\n$query->whereLike('name', $term, $caseSensitive);","typeGuard":"function supportsCaseSensitiveLike(\\Illuminate\\Database\\Connection $connection): bool\n{\n    return $connection instanceof \\Illuminate\\Database\\MySqlConnection\n        || $connection instanceof \\Illuminate\\Database\\SQLiteConnection\n        || $connection instanceof \\Illuminate\\Database\\PostgresConnection;\n}","tryCatchPattern":null,"preventionTips":["On SQL Server, control case sensitivity via column collation, not the builder flag.","Default the caseSensitive flag to false unless the engine is known to support it.","Add a SQL Server environment to CI for search-related query code."],"tags":["like","case-sensitivity","sqlsrv","database-engine"],"analyzedSha":"bd6b5437e6ad87bb49f9b426724f07a9f64e9683","analyzedAt":"2026-08-06T00:28:32.783Z","schemaVersion":2}