数据库的模糊查询

命中率越高 -- 策略越好

数据库的模糊查询 work918

在SQL中,模糊查询可以使用LIKE关键字来实现。LIKE关键字后面可以跟一个模式,其中%表示任意数量的字符,_表示一个字符。

例如,如果你想在一个名为students的表中查找所有名字以Li开头的学生,你可以这样做:

sql 复制代码
SELECT * FROM students WHERE name LIKE 'Li%';

如果你想查找名字中包含Li的学生,你可以这样做:

sql 复制代码
SELECT * FROM students WHERE name LIKE '%Li%';

如果你想查找名字长度为3,且第二个字符是i的学生,你可以这样做:

sql 复制代码
SELECT * FROM students WHERE name LIKE '_i%';

%和_区别

在SQL中,%和_都是用于模糊查询的通配符,但它们的用法有所不同:

    • %:表示任意数量的字符(包括0个字符)。例如,'Li%'可以匹配'Li','Lily','Lion'等。
    • :表示一个字符。例如,'Li'可以匹配'Lily',但不能匹配'Li'或'Lion'。

这是一个例子来说明它们的区别:

sql 复制代码
SELECT * FROM students WHERE name LIKE 'Li%'; -- 匹配所有以'Li'开头的名字
SELECT * FROM students WHERE name LIKE 'Li_'; -- 只匹配名字为三个字符,且以'Li'开头的名字

单表无条件查询格式

DISTINCT关键字用于返回唯一的记录。它会删除结果集中的重复行。

例如,如果你有一个名为students的表,其中有一个名为major的列,你可以使用DISTINCT来找出所有不同的专业:

sql 复制代码
SELECT DISTINCT major FROM students;

这将返回一个列表,其中每个专业只出现一次,即使在students表中有多个学生具有相同的专业。

请注意,DISTINCT关键字作用于所有列。例如,如果你选择多列,DISTINCT将返回唯一的行组合:

sql 复制代码
SELECT DISTINCT major, year FROM students;

这将返回所有唯一的major和year组合。如果两个学生具有相同的专业和年份,他们将只出现一次在结果集中。

举例:

排序怎么写

在SQL中,你可以使用ORDER BY关键字对查询结果进行排序。你可以根据一个或多个列进行排序,并可以指定升序(ASC)或降序(DESC)。

例如,如果你有一个名为students的表,你可以按照name列进行升序排序:
sql 复制代码
SELECT * FROM students ORDER BY name ASC;
你也可以按照name列进行降序排序:
sql 复制代码
SELECT * FROM students ORDER BY name DESC;
如果你想按照多个列进行排序,你可以在ORDER BY后面列出这些列,用逗号分隔。

例如,你可以先按照major排序,然后在每个major内部按照name排序:

sql 复制代码
SELECT * FROM students ORDER BY major ASC, name ASC;

举例

数据库只要前五行,只要录入的前五个

sql 复制代码
SELECT * FROM table_name LIMIT 5;
或者(等价于)
SELECT * FROM table_name LIMIT 0,10;

那再对积分的情况*2输出排序

积分暴涨

方式一:

(1)CASE

sql 复制代码
SELECT `sname`,`zy`,`jf`, 
   CASE 
     WHEN `zy` LIKE '%应用%' THEN `jf`+ 10 
     WHEN `zy` LIKE '%1%' THEN `jf` + 20 
      ELSE `jf`
     END AS updated_points 
FROM `stu_stu1`

(2)IF

sql 复制代码
SELECT `sname`, `zy`, `jf`,
       IF(`zy` LIKE '%应用%', `jf` + 10,
       IF(`zy` LIKE '%1%', `jf` + 20, `jf`)
       ) AS updated_points
FROM `stu_stu1`

方式二

sql 复制代码
SELECT `sname`,`zy`,`jf`, 
   CASE 
     WHEN `zy` LIKE '%应用%' THEN `jf`+ 10 
     WHEN `zy` LIKE '%1%' THEN `jf` + 20 
      ELSE `jf`
     END AS updated_points 
FROM(
    
    )AS sss
sql 复制代码
select '' AS ,'' AS ,FROM 'table------name' where zy ="名称"
sql 复制代码
SELECT `sname`,`zy`,`jf` FROM (SELECT `sname`, `zy`,`jf`
    FROM `stu_stu1`)AS sss WHERE `zy`='计算机应用'
sql 复制代码
select '' AS ,'' AS ,FROM 'table------name' where zy ="名称"
sql 复制代码
SELECT `sname`,`zy`,`jf` FROM (SELECT `sname`, `zy`,`jf`
    FROM `stu_stu1`)AS sss WHERE `zy`='计算机应用'
相关推荐
Elastic 中国社区官方博客1 天前
Elasticsearch:使用 Agent Builder 的 A2A 实现 - 开发者的圣诞颂歌
大数据·数据库·人工智能·elasticsearch·搜索引擎·ai·全文检索
2301_816660211 天前
PHP怎么处理Eloquent Attribute Inference属性推断_Laravel从数据自动推导类型【操作】
jvm·数据库·python
qq_372154231 天前
Go 中自定义类型与基础类型的显式转换规则详解
jvm·数据库·python
_下雨天.1 天前
NoSQL之Redis配置与优化
数据库·redis·nosql
LiAo_1996_Y1 天前
CSS如何实现文字渐变效果_通过background-clip实现艺术字
jvm·数据库·python
2401_887724501 天前
CSS如何让表单在手机端友好展示_利用Flexbox实现堆叠排版
jvm·数据库·python
数据库小组1 天前
MySQL 删库后怎么恢复?binlog2sql 之外,NineData 还能做什么
数据库·sql·mysql·安全·数据·ninedata·删库
zhangchaoxies1 天前
Layui轮播图(carousel)怎么设置自动播放间隔
jvm·数据库·python
切糕师学AI1 天前
HBase:一文搞懂分布式宽列数据库(原理 + 架构 + 实战)
数据库·分布式·nosql·hbase·分布式宽列数据库·wide column db
competes1 天前
慈善基金投资底层逻辑应用 顶层代码低代码配置平台开发结构方式数据存储模块
java·开发语言·数据库·windows·sql