1

私は4つのフィールドを持つデータベースを持っています。そのデータベースから複数の条件でユーザーを検索したいのですが、問題はtrueまたは条件の数に従って選択をインデックス化する方法です。フィールドはコース、学校、大学、市区町村 私は結果が真の数または条件に応じて表示されるようにしたい ここにコードがあります

    <?php
    $con = mysql_connect("xxx.xx.xxx.xxx","myusername","mypassword");
    if (!$con)
      {
     die('Could not connect: ' . mysql_error());
      }
    mysql_select_db("character", $con);
    $searchfrnd = mysql_query("SELECT * FROM user WHERE (course='physics' or  school='st thomas' or college='mit' or city='austin'))");
    WHILE($display = mysql_fetch_array($searchfrnd))
    {
    $frnd=$display[userid];
    echo $frnd;
    }
    ?>
  • 表示される結果の優先順位が、真の OR 条件の数の降順になるようにしたいだけです。つまり、一致する値の数の降順になります。
4

2 に答える 2

2

このクエリを試してください:

SELECT *
FROM user 
WHERE surname='jack' 
  OR  school='st' 
  OR college='austin' 
  OR city='mit'
ORDER BY (
  IF(surname='jack', 1, 0)
  + IF(school='st', 1, 0)
  + IF(college='austin' , 1, 0)
  + IF(city='mit', 1, 0)
) DESC;
于 2013-10-12T15:25:33.253 に答える