将sql查询转换为eloquent

时间:2018-04-27 11:42:38

标签: mysql laravel eloquent

我正在尝试将查询转换为Laravel查询,但是当我使用raw method时,我无法使其正常工作。

我的查询:

SELECT * FROM leagues
   WHERE SOUNDEX(name) 
      LIKE CONCAT('%',SUBSTRING(SOUNDEX('Eng. Premier League'),5),'%');

我在网上找不到任何回复我的文档。

1 个答案:

答案 0 :(得分:3)

您可以使用WhereRaw()将此查询转换为Laravel查询生成器。

DB::table('leagues')
  ->whereRaw("SOUNDEX(name) 
             LIKE CONCAT('%',SUBSTRING(SOUNDEX('Eng. Premier League'),5),'%')");

如果您不喜欢WhereRaw(),则必须在条件中使用DB::raw()

DB::table('leagues')
  ->where( DB::raw('SOUNDEX(name)'), 'LIKE', DB::raw("CONCAT('%',SUBSTRING(SOUNDEX('Eng. Premier League'),5),'%')") ); 

希望这有帮助。