ホームページ >バックエンド開発 >PHPチュートリアル >キーワードでソートされた mysql の検索結果
次に、豚、犬、牛という 3 つの単語を含むデータを検索する必要があります。
たとえば、結果データに豚が含まれている場合、結果データが最初にランク付けされるようにするにはどうすればよいでしょうか。 2位は牛、3位は牛でした。
例:
Pig
Cow
Dog
Dog
Pig
Cow
結果の並べ替えを次のようにしたいとします。
Pig
Pig
Dog
Dog
Cow
Cow
フィールド 1、フィールド 2、フィールド 3 で順序を追加します
{
テーブル名から豚、犬、牛の順序で * を選択します
} 問題ないはずです
豚、犬、牛は同じフィールドにあります、上の階のものではありません。
は次のように記述できます。たとえば、フィールド名は shengxiao
$sqlstr = "select *,IF(shengxiao='猪啊',1, IF(shengxiao='狗啊',2,3)) as s from table order by s";
plus order by field 1, field 2, field 3
{
select * from table name order by pig, Dog, Cow
} は OK のはずです
$str="select id from biaoqian where (biaoti like '%猪%' or b.biaoti like '%狗%' or b.biaoti like '%牛%' or b.biaoti like '%猪狗牛%' ) order by id desc limit 10";
create temporary table T select '猪啊' as f union select '牛啊' union select '狗啊';select *, if(locate('猪', f), '猪',if(locate('牛',f),'牛', if(locate('狗',f),'狗',''))) as x from T order by find_in_set(x, '猪,狗,牛')
f x 猪啊 猪 狗啊 狗 牛啊 牛
xx like '% Pig%'、xx like '%dog%'、xx like '%cow%' desc で注文します
完了、ありがとうございます