sql - 如何:sql 语句 select all from table,其中任何字母用户输入,匹配名称属性中包含的任何字母
问题描述
我在网络应用程序上有一个搜索框,我希望框中的用户输入与相关记录相匹配。目前,我可以通过全名进行搜索,即用户必须准确输入全名才能找到匹配项。
但是,我希望用户能够输入包含的任何字母,并且该函数返回包含该字母的任何名称,即 Jimmy,搜索 i 并获得匹配
这是我目前的 ruby 方法,包括 sql 语句,这是我需要以某种方式修改的
def self.search(input)
sql = "SELECT * FROM customers WHERE (first_name LIKE '#{input.capitalize}') OR (last_name LIKE '#{input.capitalize}') "
results = SqlRunner.run(sql)
return results.map { |customer| Customer.new(customer) }
end
解决方案
您需要使用通配符。% 是用任何字符串替换它自己的通配符。你的代码应该是这样的:
(first_name LIKE '%#{input.capitalize}%')
推荐阅读
- python - 如何检查商是否为整数值?Python
- spring - 如何在带有 Scala 的注释中将 Spring 表达式语言用于数组
- android - 创建特价商品布局
- javascript - Neopixel / WS2811 通过本地 HTML 控制
- batch-file - Schtasks CMD .bat 麻烦
- c++ - 为 c++ st3 创建变量语法高亮
- csv - 如何在 tensorflow 2.0 中定义嵌入列?
- c# - Win10 .NET 3.5 RSACryptoServiceProvider.Dispose 引发 CryptographicException(访问被拒绝或共享违规)
- apache-spark - Pyspark 数据框列计算
- r - 基于条件滞后的变异