我该怎么做,如果我在 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/