mysql查询顺序(按情况、时间和字段)
有人知道如何加快查询速度吗 我正在寻找关键字“酒吧”和“咖啡馆”在几个领域就只有一个表,如下图所示,然后我想按他们最合适的点击,所以我做所有的领域和案件时,可能性,当然这是放慢了很多,但我能做些什么来加快它mysql查询顺序(按情况、时间和字段),mysql,sql-order-by,field,case,Mysql,Sql Order By,Field,Case,有人知道如何加快查询速度吗 我正在寻找关键字“酒吧”和“咖啡馆”在几个领域就只有一个表,如下图所示,然后我想按他们最合适的点击,所以我做所有的领域和案件时,可能性,当然这是放慢了很多,但我能做些什么来加快它 首先,我按照准确的点击率字段进行订购,在本例中,这没有意义,因为关键字是bar和cafe,但当我查找“company name”时,我希望这家公司是#1 然后,如果确切的名称没有到达到期字段,我尝试按类似的名称/名称部分订购 在那之后,我按“金额”订购,可以是8,30欧元到500欧元,无论什
字段(lcase(companytable.company\u name),'bar cafe')
可能不是您想要的。使用字段时,要测试的每个字符串必须是单独的参数,而不是空格分隔的。所以它应该是字段(lcase(companytable.company\u name),'bar',cafe')
这实际上就是我想要的,因为它不会将这两个单词分开以获得精确的命中率,尽管这已经帮到我了,因为我创建了两个字段,并且可以将其合并到一个字段中。更进一步……:)谢谢,仅用两个参数使用字段
没有什么意义<代码>字段(x,y)
与x=y
相同。
select * FROM companytable where
companytable.aktiv='1'
and platform='1'
and (lcase(companytable.company_name) like '%bar%'
or lcase(companytable.company_name_modrewrite) like '%bar%'
or lcase(companytable.company_www) like '%bar%'
or lcase(companytable.company_nachname) like '%bar%'
or lcase(companytable.company_home_text) like '%bar%'
or lcase(companytable.keywords) like '%bar%'
or lcase(companytable.company_name) like '%cafe%'
or lcase(companytable.company_name_modrewrite) like '%cafe%'
or lcase(companytable.company_www) like '%cafe%'
or lcase(companytable.company_nachname) like '%cafe%'
or lcase(companytable.company_home_text) like '%cafe%'
or lcase(companytable.keywords) like '%cafe%'
or lcase(companytable.company_name) like '%bar cafe%'
or lcase(companytable.company_name_modrewrite) like '%bar_cafe%'
or lcase(companytable.company_www) like '%bar cafe%'
or lcase(companytable.company_nachname) like '%bar cafe%'
or lcase(companytable.company_home_text) like '%bar cafe%'
or lcase(companytable.keywords) like '%bar cafe%')
order by
FIELD(lcase(companytable.company_name),'bar cafe') desc,
FIELD(lcase(companytable.company_name),'cafe bar') desc,
case when lcase(companytable.company_name) LIKE "%cafe bar%" then 1 END desc,
case when lcase(companytable.company_name) LIKE "%bar cafe%" then 1 END desc,
cast(companytable.amount as unsigned) desc,
case when lcase(companytable.company_name) LIKE "bar cafe%" then 1 END desc,
case when lcase(companytable.company_name) LIKE "%bar cafe%" then 1 END desc,
case when lcase(companytable.company_name) LIKE "%bar cafe" then 1 END desc,
case when lcase(companytable.company_name) LIKE "cafe bar%" then 1 END desc,
case when lcase(companytable.company_name) LIKE "%cafe bar%" then 1 END desc,
case when lcase(companytable.company_name) LIKE "%cafe bar" then 1 END desc,
FIELD(lcase(companytable.company_name),'bar cafe') desc,
companytable.company_name