MySQL 数据库 查询定义参数【模糊查询】

1-1  通配符的分类

1、"%" 百分号通配符: 表示任何字符出现任意次数 (可以是0次)。

2、"_" 下划线通配符:表示只能匹配单个字符,不能多也不能少,就是一个字符。

当然,也可以like "陈____",数量不限。

3、like操作符:LIKE作用是指示mysql后面的搜索模式是利用通配符而不是直接相等匹配进行比较;但如果like后面没出现通配符,则在SQL执行优化时将 like 默认为 “=”执行

模糊查询------>>  ’查询值‘

例如:匹配带 乔 字的数据:‘%乔%’;

匹配第二个字是 乔 的数据:‘_乔_’;

匹配开头是 万 ,结尾是 顿 的数据:‘万%顿’;

“%”  匹配两个或两个以上的字符;

"_"只能匹配单个字符;

带like(像)的字符匹配查询

与“%”或“_”一起使用;

SELECT * FROM  表名  WHERE   字段名  LIKE   查询值;

例如:SELECT * FROM departments WHERE dname LIKE '%王%';

查询以查询值1开头

以查询之2结尾

select  *  from  表名  where  字段名  like  '开头字%结尾字';

模糊匹配以“网”字结尾的数据

SELECT * from 表名 where 字段名 like '%网';

'%'通配符

模糊匹配含有“网”字的数据

SELECT * from  表名  where 字段名 like '%网%';

模糊匹配以‘网’字结尾的数据

SELECT * from 表名 where 字段名 like '%网';

模糊匹配以'网'字开头的数据

SELECT * from 表名 where 字段名 like '网%';

精准匹配,

字段名 like '网' 等同于:字段名 = '网'

SELECT * from 表名 where 字段名 = '网';

-- 等同于

SELECT * from 表名 where 字段名 like '网';

模糊匹配含有“xxx网xxx车xxx”的数据,

如:"途途网约车司机端、网络约车平台"

SELECT * from 表名 where 字段名 like '%网%车%';

'_'通配符                  

注意:'%__网、__%网'  等同于 '%网'

查询以“网”为结尾的,长度为三个字的数据,

如:"链家网",

SELECT * from 表名 where 字段名 like '__网';

查询前三个字符为XX网,后面任意匹配,

如:"城通网盘、模具网平台"

SELECT * from 表名 where 字段名 like '__网%';

模糊匹配含有“xx网x车xxx”的数据,

如:"携程网约车客户端"

SELECT * from 表名 where 字段名 like '__网_车%';

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
好的,以下是一个比较复杂的与数据库交互的 Java 模糊查询 API 的示例代码: ```java import java.sql.*; import java.util.ArrayList; import java.util.List; public class FuzzySearchAPI { /** * 模糊查询方法 * @param query 查询关键字 * @return 匹配的数据列表 */ public static List<String> search(String query) { List<String> result = new ArrayList<>(); // 定义数据库连接信息 String url = "jdbc:mysql://localhost:3306/mydatabase"; String user = "root"; String password = "password"; // 定义 SQL 查询语句 String sql = "SELECT * FROM mytable WHERE name LIKE ?"; // 将查询关键字转换为模糊查询格式 String q = "%" + query + "%"; try ( // 获取数据库连接 Connection conn = DriverManager.getConnection(url, user, password); // 创建 PreparedStatement 对象 PreparedStatement stmt = conn.prepareStatement(sql); ) { // 设置查询参数 stmt.setString(1, q); // 执行查询,获取结果集 ResultSet rs = stmt.executeQuery(); // 遍历结果集,将匹配的数据添加到结果列表中 while (rs.next()) { String name = rs.getString("name"); result.add(name); } } catch (SQLException e) { e.printStackTrace(); } return result; } public static void main(String[] args) { // 测试 String query = "a"; List<String> result = search(query); System.out.println("Query: " + query); System.out.println("Result: " + result); query = "melon"; result = search(query); System.out.println("Query: " + query); System.out.println("Result: " + result); query = "p"; result = search(query); System.out.println("Query: " + query); System.out.println("Result: " + result); } } ``` 在该示例代码中,我们首先定义数据库连接信息,包括数据库 URL、用户名和密码。然后,我们定义了 SQL 查询语句,其中使用了 `LIKE` 关键字进行模糊查询。接着,我们将查询关键字转换为模糊查询格式,并通过 `PreparedStatement` 对象设置查询参数。最后,我们遍历查询结果集,将匹配的数据添加到结果列表中并返回。 需要注意的是,在实际应用中,我们需要更加严格地处理数据库连接和异常情况,以避免潜在的安全问题和数据泄露。此外,在进行模糊查询时,还需要考虑性能问题和数据量的影响。因此,我们需要根据实际情况进行适当的优化和调整。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

你可知这世上再难遇我

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值