where 1=1の役割
818 ワード
プログラムにコードを書いて、多条件クエリに使います。お客様が入ってきたクエリパラメータに基づいてsql文を構築する必要があります。例えば、中国語名、英語名に基づいて学生表を調べます。
ユーザーが中国語名を入力したら
そのため、第一行コードはWHEREの後に1=1を加えると、お客様がパラメータを伝えていない時も正常に実行できます。
String sql = "SELECT * FROM student WHERE 1=1 ";
ユーザーが中国語名を入力したら
if (StringUtils.isNotBlank(request.name)) {
sql = sql + "name = ? ";
}
ユーザが英語名を入力したらif (StringUtils.isNotBlank(request.englishName)) {
sql = sql + "englishName= ?";
}
このようにsql文をつづり合わせて、もしユーザーの一つのパラメータが全部伝わらなかったら、sqlは「SELECT*FROM student WHERE」です。そのため、第一行コードはWHEREの後に1=1を加えると、お客様がパラメータを伝えていない時も正常に実行できます。