Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/82.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Mysql SQL如果字段长度小于10个符号,则通过不带%%的like进行搜索_Mysql_Sql_Ruby On Rails_Ruby - Fatal编程技术网

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

Mysql SQL如果字段长度小于10个符号,则通过不带%%的like进行搜索,mysql,sql,ruby-on-rails,ruby,Mysql,Sql,Ruby On Rails,Ruby,如果我在db中的字段少于10个符号,我该如何做?如果我的字段少于10个符号,则通过非强like进行搜索,但如果超过10个符号,则使用%%options进行搜索? 那么如何检查字段长度呢 我在ruby中的代码如下: @search = CrossList.find(:all, :conditions => ['cross_value like ? ', oem_condition]) 但如何做类似的事情: @search = CrossList.find(:all, :condition

如果我在db中的字段少于10个符号,我该如何做?如果我的字段少于10个符号,则通过非强like进行搜索,但如果超过10个符号,则使用%%options进行搜索? 那么如何检查字段长度呢

我在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 CONCAT('%',?,'%')) OR (length(cross_value) < 10 AND cross_value like ?) ",
    oem_condition,
    oem_condition
]) 

长度条件必须由两个组中的一个组满足,无论满足哪一个组,都需要应用与之相同的条件。

一些不好的东西Mysql2::Error:您的SQL语法有错误;请查看与MySQL服务器版本对应的手册,以了解在“%”A210466%附近或在第1行的lengthcross_值<12和像“A210466”这样的cross_值附近使用的正确语法:从lengthcross_值>=12和像%'A210466%这样的cross_值或lengthcross_值<12和像“A210466”这样的cross_值中选择cross_列表。*@ValdisAzamaris如上所述添加CONCAT,对不起。我只需要设置吗?在@ValdisAzamaris中,它将作为CONCAT“%”、?、“%”工作,或者将“{oem_condition}%”作为数组参数。
@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
])