2012-09-24 30 views
3

數據庫條目MySQL的搜索量導致

臺試驗

name 
======================== 
Sunae Kasimov 
Obsop Natty 
Preem Kuman 

MySQL查詢

select * 
from test 
where name like 'na%' or 
     name like '% na%' or 
     name like '%na%'; 

回報爲了 1,然後2 但我想以2和1。那就是想給'%na%'更多的權重,然後'%na%'

任何方式,這可以在MySQL中完成?

+1

如何測量搜索「重量」? –

+0

'%na%'的結果應該高於'%na%',這就是我想要衡量結果的方式 – amitchhajer

回答

2
select * from 
(
select * from name where name like '% na%' 
union 
select * from name where name like 'na%' 
union 
select * from name where name like '%na%' 
) a 
2

您應該在您的選擇和訂單中創建虛擬字段。例如:

select test.*, 
case when name like '% na%' 
     then 1 
    else 2 
end as OrderField 
from test 
where name like 'na%' or 
     name like '% na%' or 
     name like '%na%' 
order by OrderField