Laravel 中的原始相关性查询。怎么处理呢?

2023-12-07

我目前正在将一个大项目转移到 Laravel 框架http://hobbyathletes.com/events/south-america/all-event-types/all/。我需要迁移我的内部搜索引擎,它使用以下查询(如果搜索一个单词,此处附加预选选项 South America ):

SELECT *, (
 (CASE WHEN name LIKE '%searchthis%' THEN 1000 ELSE 0 END) + 
 (CASE WHEN name LIKE 'searchthis %' THEN 10 ELSE 0 END) + 
 (CASE WHEN name LIKE 'searchthis%' THEN 1 ELSE 0 END) + 
 (CASE WHEN name LIKE '% searchthis %' THEN 5 ELSE 0 END) + 
 (CASE WHEN city LIKE '%searchthis%' THEN 500 ELSE 0 END) + 
 (CASE WHEN city LIKE 'searchthis%' THEN 10 ELSE 0 END) + 
 (CASE WHEN city LIKE 'searchthis %' THEN 1 ELSE 0 END) + 
 (CASE WHEN city LIKE '% searchthis %' THEN 5 ELSE 0 END) + 
 (CASE WHEN country LIKE '%searchthis%' THEN 500 ELSE 0 END) + 
 (CASE WHEN country LIKE 'searchthis%' THEN 10 ELSE 0 END) + 
 (CASE WHEN country LIKE 'searchthis %' THEN 1 ELSE 0 END) + 
 (CASE WHEN country LIKE '% searchthis %' THEN 5 ELSE 0 END) + 
 (CASE WHEN homepage LIKE '%searchthis%' THEN 600 ELSE 0 END) + 
 (CASE WHEN headline LIKE '%searchthis%' THEN 100 ELSE 0 END) + 
 (CASE WHEN headline LIKE 'searchthis%' THEN 10 ELSE 0 END) + 
 (CASE WHEN headline LIKE 'searchthis %' THEN 1 ELSE 0 END) + 
 (CASE WHEN headline LIKE '% searchthis %' THEN 5 ELSE 0 END) + 
 (CASE WHEN description LIKE '%searchthis%' THEN 100 ELSE 0 END) + 
 (CASE WHEN description LIKE 'searchthis%' THEN 10 ELSE 0 END) + 
 (CASE WHEN description LIKE 'searchthis %' THEN 1 ELSE 0 END) + 
 (CASE WHEN description LIKE '% searchthis %' THEN 5 ELSE 0 END) + 
 (CASE WHEN distances LIKE '%searchthis%' THEN 100 ELSE 0 END) + 
 (CASE WHEN distances LIKE 'searchthis%' THEN 10 ELSE 0 END) + 
 (CASE WHEN distances LIKE 'searchthis %' THEN 1 ELSE 0 END) + 
 (CASE WHEN distances LIKE '% searchthis %' THEN 5 ELSE 0 END) + 
 (CASE WHEN date LIKE '%2014%' THEN 300 ELSE 0 END) + 
 (CASE WHEN name LIKE '%2014%' THEN 200 ELSE 0 END) + 
 (CASE WHEN date LIKE '%2013%' THEN 200 ELSE 0 END) + 
 (CASE WHEN name LIKE '%2013%' THEN 100 ELSE 0 END) 
) 
 AS relevance 
 FROM events 
 WHERE 
 (
 country = 'Argentina' or 
 country = 'Bolivia' or 
 country = 'Brazil' or 
 country = 'Chile' or 
 country = 'Colombia' or 
 country = 'Ecuador' or 
 country = 'Guyana' or 
 country = 'Paraguay' or 
 country = 'Peru' or 
 country = 'Suriname' or 
 country = 'Uganda' or 
 country = 'Uruguay' or 
 country = 'Venezuela'
 ) 
 AND
 ( 
 name LIKE '%searchthis%' OR 
 country LIKE '%searchthis%' OR 
 city LIKE '%searchthis%' OR 
 homepage LIKE '%searchthis%' OR 
 headline LIKE '%searchthis%' OR 
 description LIKE '%searchthis%' OR 
 distances LIKE '%searchthis%'
) 
ORDER BY relevance DESC

如何将此查询传输到 Eloquent 查询构建器?我已经尝试过了DB:raw($query)这似乎不起作用...尝试过急需的->paginate(25)->get(),全部不起作用。这里有人可以引导我走向正确的方向吗?


尝试使用 DB::select()

DB::select(DB::raw("
    SELECT * FROM bla bla bla  
"));
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Laravel 中的原始相关性查询。怎么处理呢? 的相关文章

  • Woocommerce 让产品显示在存档页面中

    我正在尝试让所有产品显示在我商店的存档页面中 我想知道他们的id我正在使用我的一个钩子 它在 wp head 上运行并检查 if is product category 我想以某种方式访问 产品的查询并获取它们的 ID if is prod
  • posts_search 中的自定义查询

    如何使用此查询作为我的自定义搜索查询 add filter posts search my search is perfect 20 2 function my search is perfect search wp query sWord
  • 蛋糕控制台 2.2.1:烘焙错误

    运行 MAMP 的 OSX 机器 CakePHP 2 2 1 已正确安装和配置 这意味着当我浏览到 Index php 文件时 所有绿色条都显示出来 我已经完成了博客教程 并且正在开发我的第二个应用程序 其中脚手架已启动并运行 现在我第一次
  • Symfony2 Assetic 和 Less Sourcemaps

    我不确定如何破解 assetic less 过滤器以输出源映射文件 我这里指的是LessFilterhttps github com kriswallsmith assetic blob master src Assetic Filter
  • MYSQL从每个类别中随机选择一条记录

    我有一个数据库Items表看起来像这样 id name category int 有几十万条记录 每个item可以是 7 种不同的之一categories 对应于categories table id category 我想要一个从每个类别
  • 如何在原则 2 迁移中删除外键

    我想在原则 2 迁移中删除外键 但没有 dropForeignKeyConstraint 有谁知道怎么丢掉吗 public function down Schema schema table schema gt getTable table
  • 从 .phar 存档中提取文件

    对于 Phar 文件 我完全错过了一些东西 我正在安装一个需要 phpunit pdepend 和其他依赖项的项目 我将它们作为 phar 文件获取 但是 我无法使用命令行工具 php 命令 从中提取文件 我用谷歌搜索了这个问题 但没有发现
  • “使用未定义常量”注意,但该常量应该被定义

    共有三个文件 common php controller php 和 user php 文件 common php 如下所示 文件controller php看起来像 文件 user php 如下所示 执行脚本时 会给出通知 注意 使用未定
  • 在 PHP 中撤销 Google 访问令牌

    正如标题所示 我想以编程方式撤销授予的访问令牌 即在 PHP 中 我发现这个他们的网站 https developers google com identity protocols OAuth2WebServer tokenrevoke 但
  • 在 Wordpress 站点中进行 AJAX 调用时出现问题

    我在使用 Wordpress 站点功能的 AJAX 部分时遇到了一些问题 该功能接受在表单上输入的邮政编码 使用 PHP 函数来查找邮政编码是否引用特定位置并返回到该位置的永久链接 我的第一个问题是关于我构建的表单 现在我的表单操作是空白的
  • 从Django中具有外键关系的两个表中检索数据? [复制]

    这个问题在这里已经有答案了 This is my models py file from django db import models class Author models Model first name models CharFie
  • 随机组合 MySQL 数据库中的两个单词

    我有一个包含名词和形容词的数据库 例如 id type word 1 noun apple 2 noun ball 3 adj clammy 4 noun keyboard 5 adj bloody ect 我想创建一个查询 它将抓取 10
  • 覆盖控制器 Symfony 3.4/4.0

    我目前正在尝试覆盖 FOSUserBundle 中的控制器 在新的文档中 https symfony com doc 3 4 bundles override html https symfony com doc 3 4 bundles o
  • 通过触发器应用表的列权限

    现在 我有一个名为 Members 的表 其中包含内容 分为联系人数据 银行数据 现在 管理员应该能够创建 更新 删除用户 这些用户保存在另一个表中 该表只能访问管理员 用户应该获得自己的 mysql 用户帐户 管理员还应该能够设置权限 例
  • 快速将列的副本添加到 MySQL 表

    我需要一种快速的方法来复制表中的 DATETIME 列并为其指定一个新名称 我的表中有一个名为 myDate 的列 名为 myResults 我需要一个查询来在名为 newDate 的表中创建一个新列 该列的数据与 myDate 列完全相同
  • jQuery Mobile 表单验证

    我有一个移动网站 除了验证之外一切都工作正常 基本上我希望从用户那里获取值 然后在单独的页面 process php 上处理它们 但是 在这样做之前 我需要检查以确保字段已填充 我已经研究了几种方法来做到这一点 但似乎没有一种有效 我现在有
  • SQL 最近日期

    我需要在 php 中获取诸如 2010 04 27 之类的日期作为字符串 并在表中找到最近的 5 个日期 表中的日期保存为日期类型 您可以使用DATEDIFF http dev mysql com doc refman 5 1 en dat
  • 表单计算器脚本基本价格未加载 OnLoad

    我的表单中有一个计算器来计算我的下拉选项选择 function select calculate on change calc input type checkbox calculate on click calc function cal
  • Doctrine EntityManager 清除嵌套实体中的方法

    我想用学说批量插入处理 http doctrine orm readthedocs org en latest reference batch processing html为了优化大量实体的插入 问题出在 Clear 方法上 它表示此方法
  • 如何在 PHP 中从 IP 地址/国家/地区名称查找时区 ID?

    谁能告诉我 PHP 中是否有任何方法可以从 IP 地址或国家 地区名称获取时区区域 例如 亚洲 加尔各答 描述 我正在尝试根据他 她的国家 地区设置用户时区 我从他的 IP 地址获取用户所在国家 地区 但我需要该国家 地区的时区区域 例如

随机推荐