0

「Featured」という列を持つデータベース テーブルがあります。これはyまたはnです。

'Featured'=='y'を強制的に最初に印刷しようとしています (foreachループを介して HTML を印刷します)。

現在は、インデックス (ID) の順にロードされます。

SQL クエリの最後に追加しようとしORDER BY Featuredましたが、何もしません。

どうすればこれを達成できますか?

これをジェネリック関数で使用しています。2 つのクエリを作成せずに「Featured」が存在するかどうかを確認するにはどうすればよいですか?

「Featured」を含まないテーブルの SQL を壊します

必要に応じてのみSQLを変更するように設定しましたswitch..しかし、誰かが混合方法を知っている場合は、SQLステートメントでこれを処理したいと思いますIF EXISTS.助けてくれてありがとう!

4

1 に答える 1

4

Y と N の値を使用する代わりに、1 と 0 のようなより数値的なアプローチを使用してください。これにより、数値による並べ替えを使用できます。ただし、列の値を変更したくない場合は、次のようにします。

ORDER BY Featured DESC

これにより、すべての Y が最初に配置されます。

PS: 将来的には、ブール値 (1 と 0) に数字を使用する方が良いことがわかるでしょう。これにより、将来、第 3 と第 4 のシナリオでニッチな機能を追加できるようになります (したがって、 2 と 3 などに設定します)。

于 2013-06-20T21:14:29.877 に答える