Следите за новинками
в нашем Telegram канале. Жми, чтобы подписаться:)
⊗ktSpDbWhr 207 of 299 menu
◀ ▶

Условие в SQL-выборке

Ключевое слово WHERE оставляет только строки, где предикат истинен. Значение из Kotlin безопаснее передавать через "?", а не вшивать в текст.

Подготовленный SELECT с одним параметром ищет записи по совпадению поля:

import java.sql.DriverManager fun main() { DriverManager.getConnection("jdbc:sqlite:filter_demo.db") .use { connection -> connection.createStatement().use { statement -> statement.execute( """ CREATE TABLE IF NOT EXISTS tags ( id INTEGER PRIMARY KEY, name TEXT NOT NULL, group_code TEXT NOT NULL ) """ ) statement.executeUpdate( "INSERT INTO tags (name, group_code) VALUES ('alpha', 'g1')" ) statement.executeUpdate( "INSERT INTO tags (name, group_code) VALUES ('beta', 'g2')" ) } val query = connection.prepareStatement( "SELECT name FROM tags WHERE group_code = ?" ) query.setString(1, "g1") val result = query.executeQuery() while (result.next()) { println(result.getString("name")) } } }

Смена аргумента меняет набор строк без нового SQL. Числовые поля сравнивают через setInt и операторы вроде >=:

import java.sql.DriverManager fun main() { DriverManager.getConnection("jdbc:sqlite:filter_demo.db") .use { connection -> val query = connection.prepareStatement( """ SELECT name FROM tags WHERE group_code = ? AND id >= ? """ ) query.setString(1, "g2") query.setInt(2, 1) val result = query.executeQuery() while (result.next()) { println(result.getString("name")) } } }

Создайте таблицу shifts в plant.db с полями worker, shift_code и hours, добавьте три строки и выведите имена, где hours не меньше 8.

Выведите имена смен с кодом смены "night", используя параметр в условии по полю shift_code.

← →
↑
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить