sql - 创建选择表中特定条目的 SQL 查询
问题描述
我有一个名为 grades 的表,它有 4 列:ID、数学、科学和历史。
我想创建一个 sql 查询,从表中选择“等级”特定条目,其中“ID”等于变量。每次运行程序时,此变量都会更改。到目前为止我尝试过但没有工作的是:
"SELECT * FROM grades Where ID LIKE %" + IDString + "%"
"SELECT * FROM grades Where ID LIKE %IDString%"
"SELECT * FROM grades Where ID LIKE 'IDString'"
注意:IDString 是字符串变量。 注意:我使用的是 Java 和 Sqlite。
String IDString = "12345";
ResultSet rs = connection.createStatement().executeQuery("SELECT * FROM grades Where ID LIKE '%' || IDString || '%' ");
这段代码是为了让我的问题更清楚一点。
解决方案
使用concat
函数连接变量和字符串。
SELECT * FROM mytable Where col2 LIKE CONCAT('%', @start, '%')
或者在你的情况下:
SELECT * FROM grades Where ID LIKE CONCAT('%', @IDString, '%')
在 SQLite 中,这看起来像这样:
SELECT * FROM grades Where ID LIKE '%' || @IDString || '%'
但是在 SQLite 中你不能使用变量。这需要在代码的 Java 部分中完成。
从 JAVA 发送查询时,您可以这样做:
"SELECT * FROM grades Where ID LIKE '%' ||" + IDString + "|| '%' "
推荐阅读
- php - 显示具体编号 每页的行数?
- python - TypeError:search() 为弹性搜索 5.6 版获得了意外的关键字参数“doc_type”
- ios - Visual Studio Xamarin Apple 帐户选项无法下载配置文件
- php - PHP:PDO 的高内存使用率
- ruby-on-rails - 更改 rails secret_key_base 对生产有什么影响?
- excel - 根据名称和时间计算唯一记录
- valgrind - Valgrind地块组合快照
- javascript - PHP链接构建器避免使用Java Script并隐藏旧URL
- python - 无法弄清楚写入 csv
- r - 减少异常值的功能