首页 > 解决方案 > laravel 中的 Mysql 查询在使用显示语法时出现语法错误

问题描述

我有如下的sql查询

show indexes from `users` where not Non_unique and Key_Name <> 'PRIMARY';

但是当我在 laravel 中编写相同的查询时,如下所示。

$columns = DB::select(DB::raw(" SHOW INDEXES FROM $table WHERE NOT Non_unique and Key_Name <> PRIMARY "))->get();

它给了我以下错误

您的 SQL 语法有错误;检查与您的 MySQL 服务器版本相对应的手册,以在第 1 行的“PRIMARY”附近使用正确的语法

标签: mysqllaravel

解决方案


您需要添加 ' 来换行primary,因此请更改

$columns = DB::select(DB::raw(" SHOW INDEXES FROM $table WHERE NOT Non_unique and Key_Name <> PRIMARY "))->get();

$columns = DB::select(DB::raw(" SHOW INDEXES FROM $table WHERE NOT Non_unique and Key_Name <> 'PRIMARY' "))->get();

推荐阅读