mysql-查询与两列字符串匹配的数据

假设我有带两列类别和名称的产品表.
现在,用户可以按类别或名称或类别和名称两者查找产品

例如,某产品的类别为计算机,名称为Dell.用户在搜索框“计算机”,“戴尔”或“戴尔计算机”或“戴尔计算机”中输入,都可以退回该产品

关于Activerecord查询有任何想法吗?

最佳答案
如果您使用的是mysql,则可以使用CONCAT来连接类别和名称,然后像平常一样进行LIKE查询

Product.where("LOWER(CONCAT(name,' ',category)) LIKE :query OR LOWER(CONCAT(category,name)) LIKE :query",query: "%#{params[:query].downcase}%")

通过此查询,可以找到以下两种情况:Dell,计算机,Dell计算机或Dell计算机

相关文章

在正式开始之前,我们先来看下 MySQL 服务器的配置和版本号信...
> [合辑地址:MySQL全面瓦解](https://www.cnblogs.c...
物理服务机的CPU、内存、存储设备、连接数等资源有限,某个时...
1 回顾 上一节我们详细讲解了如何对数据库进行分区操作,包括...
navicat查看某个表的所有字段的详细信息 navicat设计表只能一...
文章浏览阅读4.3k次。转载请把头部出处链接和尾部二维码一起...