You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Laravel Sail+MySQL8.0.32 SQL语法错误排查求助

问题分析与解决方案

你的查询触发MySQL 1064语法错误的核心原因是使用双引号包裹DB::raw的SQL字符串,导致PHP自动解析了字符串中的变量(比如properties.id里的$id)。这些未定义的变量会被替换为空字符串,直接破坏SQL结构,最终引发语法错误。

修复步骤

将DB::raw中的双引号替换为单引号,避免PHP解析SQL内部的变量:

Property::select(DB::raw('
            properties.id,
            properties.company_id,
            properties.title,
            properties.slug,
            properties.neighborhood,
            properties.city,
            properties.address,
            properties.number,
            properties.property_purpose,
            properties.property_type,
            properties.total_area,
            properties.usefull_area,
            properties.bedrooms,
            properties.bathrooms,
            properties.garage,
            properties.sell,
            properties.rent,
            properties.administration_fee,
            properties.yearly_tax,
            property_highliteds.hightlight,
            companies.property_show_number,
            ROW_NUMBER() OVER (PARTITION BY properties.company_id ORDER BY property_highliteds.hightlight DESC, properties.created_at DESC) as row_number
        '))
            ->leftJoin('property_highliteds', 'properties.id', '=', 'property_highliteds.property_id') // 关联高亮表
            ->leftJoin('companies', 'properties.company_id', '=', 'companies.id')   // 关联公司表
            ->orderBy('row_number')  // 按行号排序
            ->with([
                'images_thumb:id,property_id,url',  // 仅加载图片URL
                'company:id,property_show_number',  // 仅加载公司所需字段
                'highlight:id,property_id,hightlight' // 通过BelongsTo加载高亮
            ])
            ->paginate($perPage);

额外优化建议

  1. 修正拼写错误:usefull_area应为useful_area(多了一个l),property_highliteds应为property_highlighteds(少了一个i),虽然这不是本次语法错误的诱因,但可能导致后续逻辑异常。
  2. 移除重复数据加载:你在SELECT中已获取companies.property_show_number,又在with('company')中重复加载该字段,可移除其中一处以优化查询性能。

内容的提问来源于stack exchange,提问作者Casa Carro

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.17 20:33:13