gpt4 book ai didi

sql - 如何对名字、姓氏进行 SQL 搜索查询

转载 作者:行者123 更新时间:2023-12-04 13:35:04 26 4
gpt4 key购买 nike

例如,如果我有一个模型:

User :firstname   :lastname
joseph smith
anna bauer
... ...
还有一个输入字段,您可以在其中搜索用户。不同的搜索查询可能是:
  searchquery1:  smith joseph
searchquery2: joseph smith
searchquery3: joseph
searchquery4: smith
SQL 中的哪个搜索查询最好?其实我可以想象这个搜索查询:
  where 'firstname OR lastname  LIKE ?', "%#{search}"
第一次尝试:
def self.search(search)
if search
select('CONCAT(vorname, " ", nachname) as full_name, *')
where ['vorname LIKE :s OR nachname LIKE :s OR full_name LIKE :s', :s => "%#{search}"]
else
scoped
end
end
错误: SQLite3::SQLException: no such column: full_name第二次尝试:
def self.search(search)
if search
a = search.split
where('firstname OR lastname LIKE ?', a[1])
where('firstname OR lastname LIKE ?', a[2]) unless a[2].nil?
else
scoped
end
end
问题:一无所获!

最佳答案

是的,您必须像这样搜索名字和姓氏

select('(firstname || " " || lastname) as \'full_name\', *')
where ['firstname LIKE :s OR lastname LIKE :s OR full_name LIKE :s', :s => "%#{search}"]

但是如果数据太大。您可以使用 Solr 或 thinkin sphinx 等全文搜索引擎

关于sql - 如何对名字、姓氏进行 SQL 搜索查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18869111/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com