0

安心して来ました笑。

この種のアルゴリズムをどのように実現するのか疑問があります(英語が苦手な例を使用します)

index.phpページにあります。getメソッドを送信しました(term=dog&name=john)

そしてprocess.phpで、このgetメソッドデータを使用してデータを並べ替えるにはどうすればよいですか。ページにすべての「term = dog」が表示され、最初に表示されるのは「name = john」の後に何でも(name = "whatever ")。

ページ表示の例は次のようになります

dog
**john**

dog
peter

dog
jane

私の失敗の試みは犬のすべてのリストを表示するだけですが、この場合最初に何が「ジョン」であるかを指定することはできません

これが私の失敗した結果です

dog
peter

dog
jame

dog
**john**

それは、私が望むものとは異なるテーブル内のIDプロパティに従ってソートされます。

SELECT * FROM animal WHERE race = '$term' ORDER BY '$name'

これは私が今まで持っているすべてのコードです私は知らないのでそれを分類し始めていません

4

3 に答える 3

3

raceしたがって、 ='$ term'であるすべての行を取得し、 name='$ name'の場合は、その行を結果セットの先頭に配置する必要があるように思われます。このソリューションを使用できます。

SELECT   * 
FROM     animal 
WHERE    race = '$term'
ORDER BY CASE name WHEN '$name' THEN 0 ELSE 1 END, name
于 2012-08-03T02:09:04.567 に答える
0
SELECT * FROM animal WHERE race = '$term' ORDER BY (name = '$name') DESC
于 2012-08-03T02:12:42.490 に答える
0
SELECT race, name, IF(name = 'john', 1, 0) AS o FROM animal WHERE race = 'dog' ORDER BY o DESC;

私が正しく理解しているなら、あなたのためにそれをするべきです。すべての行 WHERE race = 'dog' が必要ですが、上部に名前が指定されています。

于 2012-08-03T02:26:48.490 に答える