这是导致我的查询失败的一行。
$query = $query->where('a.field LIKE :keyword OR LEFT(a.otherfield, 3) = LEFT(:keyword, 3)');
我得到这个错误:
[Syntax Error] line 0, col 104: Error: Expected known function, got 'LEFT'
此SQL代码有效:
SELECT * FROM `table`
WHERE field LIKE 'searchterm'
OR LEFT(`otherfield`, 3) = LEFT('searchterm', 3)
为什么LEFT()返回错误?使用查询生成器有不同的方法吗?
试着看看这个问题。否则,试试老派的方法!带有条令的原生sql。
@Houssem Zitoun的答案很好,我将其标记为答案,因为它与我的问题相关。这不是我使用的答案,然而
我已经用sql编写了我想要使用的查询,所以我决定使用带有条令的自定义查询。它在这里解释了如何做到这一点;原则:创建自定义SQL查询