HSQLDB - LIKE 子句
RDBMS 结构中有一个 WHERE 子句。 您可以在我们想要进行精确匹配的地方使用带有等号 (=) 的 WHERE 子句。 但可能有一个需求,我们想要过滤掉所有作者姓名应包含"john"的结果。 这可以使用 SQL LIKE 子句和 WHERE 子句来处理。
如果 SQL LIKE 子句与 % 字符一起使用,那么它将像 UNIX 中的元字符 (*) 一样工作,同时在命令提示符下列出所有文件或目录。
语法
以下是 LIKE 子句的通用 SQL 语法。
SELECT field1, field2,...fieldN table_name1, table_name2... WHERE field1 LIKE condition1 [AND [OR]] filed2 = 'somevalue'
您可以使用 WHERE 子句指定任何条件。
您可以将 LIKE 子句与 WHERE 子句一起使用。
您可以使用 LIKE 子句代替等号。
当 LIKE 子句与 % 符号一起使用时,它将像元字符搜索一样工作。
您可以使用 AND 或 OR 运算符指定多个条件。
WHERE...LIKE 子句可以与 DELETE 或 UPDATE SQL 命令一起使用来指定条件。
示例
让我们考虑一个检索教程数据列表的示例,其中作者姓名以 John 开头。 以下是给定示例的 HSQLDB 查询。
SELECT * from tutorials_tbl WHERE author LIKE 'John%';
执行上述查询后,您将收到以下输出。
+-----+----------------+-----------+-----------------+ | id | title | author | submission_date | +-----+----------------+-----------+-----------------+ | 100 | Learn PHP | John Poul | 2016-06-20 | +-----+----------------+-----------+-----------------+
HSQLDB – JDBC 程序
以下是检索教程数据列表的 JDBC 程序,其中作者姓名以 John 开头。 将代码保存到LikeClause.java中。
import java.sql.Connection; import java.sql.DriverManager; import java.sql.ResultSet; import java.sql.Statement; public class LikeClause { public static void main(String[] args) { Connection con = null; Statement stmt = null; ResultSet result = null; try { Class.forName("org.hsqldb.jdbc.JDBCDriver"); con = DriverManager.getConnection( "jdbc:hsqldb:hsql://localhost/testdb", "SA", ""); stmt = con.createStatement(); result = stmt.executeQuery( "SELECT * from tutorials_tbl WHERE author LIKE 'John%';"); while(result.next()){ System.out.println(result.getInt("id")+" | "+result.getString("title")+" | "+result.getString("author")+" | "+result.getDate("submission_date")); } } catch (Exception e) { e.printStackTrace(System.out); } } }
您可以使用以下命令启动数据库。
\>cd C:\hsqldb-2.3.4\hsqldb hsqldb>java -classpath lib/hsqldb.jar org.hsqldb.server.Server --database.0 file:hsqldb/demodb --dbname.0 testdb
使用以下命令编译并执行上述代码。
\>javac LikeClause.java \>java LikeClause
执行以下命令后,您将收到以下输出。
100 | Learn PHP | John Poul | 2016-06-20