首页 > 解决方案 > 创建选择表中特定条目的 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 || '%' ");

这段代码是为了让我的问题更清楚一点。

标签: sqlsqlite

解决方案


使用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 + "|| '%' "

推荐阅读