3

データベースエントリ

テーブルテスト

 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で実行できますか?

4

2 に答える 2

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
于 2012-09-24T08:35:13.297 に答える
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
于 2012-09-24T08:41:04.667 に答える