mysql - 如果字段长度小于 10 个符号,则 SQL 通过不带 %% 的 like 进行搜索

标签 mysql sql ruby-on-rails ruby

我该怎么做,如果我在 db 中的字段少于 10 个符号,则通过非强类搜索,但如果超过 10 个,则使用 %% 选项搜索? 那么如何查看字段长度呢?

我的 ruby​​ 代码是这样的:

@search = CrossList.find(:all, :conditions => ['cross_value like ? ', oem_condition]) 

但是如何做类似的事情:

@search = CrossList.find(:all, :conditions => ['length(cross_value) < 10 and cross_value like ? ', oem_condition]) 

其他

 @search = CrossList.find(:all, :conditions => ['length(cross_value) >= 10 and cross_value like %?% ', oem_condition]) 

最佳答案

使用两个条件,并将它们OR在一起:

@search = CrossList.find(:all, :conditions => [
   "(length(cross_value) >= 10 AND cross_value like CONCAT('%',?,'%')) OR (length(cross_value) < 10 AND cross_value like ?) ",
    oem_condition,
    oem_condition
]) 

LENGTH() 条件必须由两个 () 组中的一个满足,无论哪个满足,也需要 LIKE 将应用 AND 的条件。

关于mysql - 如果字段长度小于 10 个符号,则 SQL 通过不带 %% 的 like 进行搜索,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14737304/

相关文章:

ruby-on-rails - Bundler 找不到 gem “rails” 的兼容版本,手动和包安装都不起作用

ruby-on-rails - Ruby on rails 电子邮件错误 535-5.7.1 用户名和密码不被接受

mysql - SQL SELECT 子句列添加行?

php - INSERT查询PHP e mySql引起的奇怪错误

php - 我的网站搜索没有回显任何结果

php - jQuery - 在 Mysql 中搜索结果,然后在表格中显示,而且每条记录都有一个点击链接

mysql - 返回对用户配置文件的最近访问。 Group-by-N 混淆

SQL 查询从列中获取空值计数

sql - 比较记录集中的 2 个连续行

javascript - 应用程序内的 Rails 搜索选项