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\hsqldbhsqldb>java -classpath lib/hsqldb.jar org.hsqldb.server.Server --database.0file:hsqldb/demodb --dbname.0 testdb
使用以下命令编译并执行上面的代码.
\>javac LikeClause.java\>java LikeClause
执行以下命令后,您将收到以下输出.
100 | Learn PHP | John Poul | 2016-06-20