[解決済み】「where 1=1」文【重複あり
2022-04-10 09:13:51
質問
重複の可能性があります。
なぜSQL句でWHERE 1=1 AND <conditions>を使用するのでしょうか?
MySQLデータベースのテーブルを照会するために、次のようなステートメントを使用している人を見かけました。
select * from car_table where 1=1 and value="TOYOTA"
しかし
1=1
ここでいう意味とは?
どのように解決するのですか?
SQLステートメントを構築する際に発生することが多いようです。
を追加した場合
and value = "Toyota"
の前に条件があるか、WHEREだけかを気にする必要はない。オプティマイザーはそれを無視するはずです。
魔法ではなく、実用的なもの
コード例です。
commandText = "select * from car_table where 1=1";
if (modelYear <> 0) commandText += " and year="+modelYear
if (manufacturer <> "") commandText += " and value="+QuotedStr(manufacturer)
if (color <> "") commandText += " and color="+QuotedStr(color)
if (california) commandText += " and hasCatalytic=1"
そうしないと、複雑なロジックを組まなければならなくなります。
commandText = "select * from car_table"
whereClause = "";
if (modelYear <> 0)
{
if (whereClause <> "")
whereClause = whereClause + " and ";
commandText += "year="+modelYear;
}
if (manufacturer <> "")
{
if (whereClause <> "")
whereClause = whereClause + " and ";
commandText += "value="+QuotedStr(manufacturer)
}
if (color <> "")
{
if (whereClause <> "")
whereClause = whereClause + " and ";
commandText += "color="+QuotedStr(color)
}
if (california)
{
if (whereClause <> "")
whereClause = whereClause + " and ";
commandText += "hasCatalytic=1"
}
if (whereClause <> "")
commandText = commandText + "WHERE "+whereClause;
関連
-
[解決済み】MySQLのエラーコードです。MySQL WorkbenchでUPDATE中に1175のエラーが発生しました。
-
[解決済み] mysql 拡張は非推奨で、将来的に削除されます: 代わりに mysqli か PDO を使ってください [重複] 。
-
[解決済み] エラー 1044 (42000)。データベース 'db' へのユーザー ''@'localhost'' のアクセスが拒否されました。
-
[解決済み] MySQLの更新datetimeフィールド
-
[解決済み] 最初の行への結合方法
-
[解決済み] SQLite - UPSERT *not* INSERT or REPLACE
-
[解決済み] SQLデータベースのテーブルでn番目の行を選択する方法は?
-
[解決済み】SQL句「GROUP BY 1」の意味とは?
-
[解決済み】オートインクリメント開始番号の変更?
-
[解決済み】MySQLでカラムに同じ値を持つ行を検索する
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み】1052:フィールドリストの列「id」が曖昧である
-
[解決済み】MySQLエラー#1071 - 指定されたキーが長すぎる; キーの最大長は767バイトです。
-
[解決済み】MySQL エラー #1133 - ユーザー テーブルに一致する行が見つかりません。
-
[解決済み] SQLキー、MUL vs PRI vs UNI
-
[解決済み] ローカルマシンからリモートDBをmysqldumpする方法
-
[解決済み] SQL エラー - テーブルの定義が正しくありません; auto カラムは 1 つしか存在できません。
-
[解決済み] MongoDBのようにMySQLにもTTLがあるのでしょうか?
-
[解決済み] エラーコード1111。グループ関数の無効な使用
-
[解決済み】SQL Server DBのすべてのインデックスとインデックスカラムのリスト
-
[解決済み】なぜSQL句でWHERE 1=1 AND <conditions>を使用するのでしょうか?