在进行数据库查询时,有完整查询和模糊查询之分。

一般模糊语句如下:

SELECT 字段 FROM 表 WHERE 某字段 Like 条件

其中关于条件,SQL提供了四种匹配模式:

1,%:表示任意0个或多个字符。可匹配任意类型和长度的字符,有些情况下若是中文,请使用两个百分号(%%)表示。

比如 SELECT * FROM [user] WHERE u_name LIKE '%三%'

将会把u_name为"张三","张猫三"、"三脚猫","唐三藏"等等有"三"的记录全找出来。

另外,如果需要找出u_name中既有"三"又有"猫"的记录,请使用and条件

SELECT * FROM [user] WHERE u_name LIKE '%三%' AND u_name LIKE '%猫%'

若使用 SELECT * FROM [user] WHERE u_name LIKE '%三%猫%'

虽然能搜索出"三脚猫",但不能搜索出符合条件的"张猫三"。

2,_: 表示任意单个字符。匹配单个任意字符,它常用来限制表达式的字符长度语句:

比如 SELECT * FROM [user] WHERE u_name LIKE '_三_'

只找出"唐三藏"这样u_name为三个字且中间一个字是"三"的;

再比如 SELECT * FROM [user] WHERE u_name LIKE '三__';

只找出"三脚猫"这样name为三个字且第一个字是"三"的;

3,[ ]:表示括号内所列字符中的一个(类似正则表达式)。指定一个字符、字符串或范围,要求所匹配对象为它们中的任一个。

比如 SELECT * FROM [user] WHERE u_name LIKE '[张李王]三'

将找出"张三"、"李三"、"王三"(而不是"张李王三");

如 [ ] 内有一系列字符(01234、abcde之类的)则可略写为"0-4"、"a-e"

SELECT * FROM [user] WHERE u_name LIKE '老[1-9]'

将找出"老1"、"老2"、……、"老9";

4,[^ ] :表示不在括号所列之内的单个字符。其取值和 [] 相同,但它要求所匹配对象为指定字符以外的任一个字符。

比如 SELECT * FROM [user] WHERE u_name LIKE '[^张李王]三'

将找出不姓"张"、"李"、"王"的"赵三"、"孙三"等;

SELECT * FROM [user] WHERE u_name LIKE '老[^1-4]';

将排除"老1"到"老4",寻找"老5"、"老6"、……

5,查询内容包含通配符时

由于通配符的缘故,导致我们查询特殊字符"%"、"_"、"["的语句无法正常实现,而把特殊字符用"[ ]"括起便可正常查询。据此我们写出以下函数:

function sqlencode(str)

str=replace(str,"[","[[]") '此句一定要在最前

str=replace(str,"_","[_]")

str=replace(str,"%","[%]")

sqlencode=str

end function

在查询前将待查字符串先经该函数处理即可。

分享到:

2012-08-28 10:34

浏览 5893

分类:数据库

评论

qt中使用mysql模糊查询_mysql数据库模糊查询简介相关推荐

  1. mysql数据库实验3查询_mysql数据库(3)-查询

    数据库设计规范 查询 创建数据库.数据表 -- 创建数据库 create database python_test_1 charset=utf8; -- 使用数据库 use python_test_1 ...

  2. mysql select表达式_MySQL数据库SELECT查询表达式解析

    数据的管理在很大一部分是在进行查找工作,而SELECT占据了很大的一部分 SELECT select_expr [,select_expr...] [ FROM table_reference WHE ...

  3. mysql联合查询怎么加子查询_MySQL数据库 —子查询,联合查询

    编程之家收集整理的这篇文章主要介绍了MySQL数据库 -子查询,联合查询,编程之家小编觉得挺不错的,现在分享给大家,也给大家做个参考. <MySQL数据库 -子查询,联合查询>要点: 本文 ...

  4. mysql离散查询_mySQL数据库数据查询操作详解

    查询数据: 简单查询: 1.查询所有数据: select * from 表名 #select * from info 查询所有列 2.查询指定列: select code,name from info ...

  5. mysql复数记录_mysql 数据库设计查询规范

    (一)建表规约 1.[强制]表达是与否概念的字段,必须使用is_xxx的方式命名,数据类型是unsignedtinyint(1表示是,0表示否) .说明:任何字段如果为非负数,必须是unsigned. ...

  6. mysql数据连接查询_mysql数据库 连接查询

    左连接: select 列1,列2,列N from tableA left  join tableB on tableA.列 = tableB   [此次表连接成一张大表,完全当成普通表看] wher ...

  7. 微服务跨数据库联合查询_MySQL数据库联合查询

    大家好,我是anyux.数据库联表查询很重要,内联查询更是尤为重要. 需要将school.sql文件导入到数据库中 数据库多表联合查询,school库下表的逻辑结构关系都在下图中.可以通过驱动表加子表 ...

  8. 在Qt中操作MySQL数据库

    目录 一.安装驱动 (1)安装 (2)验证驱动是否安装成功 二.使用MySQL数据库 (1)单语句执行 (2)多语句执行 (3)批处理操作 方式一:addBindValue() 方式二:bindVal ...

  9. 压缩包安装mySQL 与 Qt中使用mySQL

    文章目录 安装mySQL mySQL压缩包安装 Qt中使用mySQL Qt中的mySQL驱动编译 test 安装mySQL mySQL压缩包安装 参考: https://blog.csdn.net/S ...

  10. 【转】QT中使用MYSQL中文乱码解决方法

    [转]QT中使用MYSQL中文乱码解决方法 Linux下乱码解决办法: 1.在QT程序的main.cpp的main函数中添加红色字那三句: int main(int argc, char *argv[ ...

最新文章

  1. c语言控制台光标的坐标范围,C语言之实现控制台光标随意移动的实例代码
  2. 使用VS2008开发及部署Excel AddIn 心得
  3. 第一章 OSI参考模型
  4. kubeadm安装k8s 1.13版本
  5. 微软取消Windows10强制更新
  6. LeetCode(1)——两数之和(JavaScript)
  7. 方法不对,啥都学不会!90%的Python工程师都输在这点上!
  8. 有关python_30个有关Python的小技巧
  9. kali linux权限维持,msfconsole权限维持
  10. Ionic页面传参跳转
  11. 红包码收款码合二为一
  12. DDD理论学习系列(7)-- 值对象
  13. 百度微笑起航将人脸识别玩出新高度
  14. PHP:include包含文件局部引入全局变量失效的作用域问题
  15. SCR-MCR:正则项, OGB榜单--清华唐杰-- 可扩展图学习
  16. 前端实现对ZIP 压缩文件解压,实现前端直接展示结果,比如图片,压缩包等 audio对象进行播放
  17. (转)Linux Kernel核心中文手册
  18. Matlab - 产生高斯噪声
  19. C++优化之使用emplace、emplace_back
  20. grafana+prometheus+node_exporter Window笔记

热门文章

  1. python word库_Python|利用第三方库编辑word的基本操作
  2. 魔方游戏程序设计制作(C语言)
  3. 收集的Word2007技巧大全
  4. ov7740摄像头模块
  5. 拼音搜索 拼音首字母搜索 (pinyin-match) js
  6. 银行学生助学贷款管理系统免费PPT模板
  7. 图论 Tarjan算法求 割点
  8. C语言新思路跟未来教育哪个好,计算机等级考试用什么书好 未来教育的书怎么样?貌似网上评价很高...
  9. 数据库MySQL学习——内含34道MySQL练习题及答案
  10. PHP 高并发秒杀解决方案