sql如果值类似于多个列,则选择该列

v1l68za4  于 2021-06-21  发布在  Mysql
关注(0)|答案(1)|浏览(387)

我需要用ajax创建一个自动完成搜索。建议应该只包含10个输入最多的结果。如果值类似于我的变量,则搜索查询必须检查多个列。
但我的问题是要为此创建查询和php逻辑。
有没有什么插件或者类似的东西?
如果列中的值与我的变量类似,如何选择该列?
我需要创建一个count查询,它计算(在所有列中)“这里有多少完整的单词(按空格分隔)”<-这与找到的单词类似(以获得相关性)
最后,我需要按相关性对找到的条目进行排序,以提供10个最相关的条目。
(真正的查询检查的列不只是2个,但是由于虚假的原因2个是可以的)
选择值如下所示的行的查询。。。

select * from 
(
    (select department from entries where department like '%myVariable%') 
OR 
    (select grade from entries where grade like '%myVariable%')
)

我想你知道我的意思。有人给我任何提示、建议、例子或有用的链接吗?
提前谢谢!
致以最诚挚的问候,
弗里安

ht4b089n

ht4b089n1#

为什么不在这里使用union?

select department from entries where department like '%myVariable%'
union all
select grade from entries where grade like '%myVariable%'

然后,这将为您排序结果:

select department, count(*) cnt from (
select department from entries where department like '%myVariable%'
union all
select grade from entries where grade like '%myVariable%')a
group by department
order by count(*) desc

相关问题