1

フィールドのすべての可能な値を表すために使用できるSQLの変数はありますか?この擬似コードのようなもの

SELECT name FROM table WHERE id = *ALL_EXISTING_ID-s*

この場合はすべての行を返したいのですが、後で検索を実行して1つのアイテムだけが必要になったときに、その変数をid探しているものに置き換えることができます。

SELECT name FROM table WHERE id = 1
4

1 に答える 1

4

最も簡単な方法は、WHERE句を削除することです。これにより、すべての行が返されます。

SELECT name FROM table 

既存のクエリで使用できるIDに使用できる「魔法の」値が必要で、すべての行が返される場合は、運が悪いと思います。

あなたはこのようなものを使うことができますが:

SELECT name FROM table WHERE id = IFNULL(?, id)

値が指定されている場合NULL、すべての行が返されます。

気に入らない場合はNULL、次のクエリを試してください。値-1が指定されている場合は、すべての行が返されます。

SELECT name FROM table WHERE id = IFNULL(NULLIF(?, -1), id)

同じ効果を達成する別のアプローチ(ただし、IDを2回バインドする必要があります)は次のとおりです。

SELECT name FROM table WHERE (id = ? OR ? = -1)
于 2012-07-21T20:09:57.223 に答える