请设计数据库事件字符比较的简单介绍

本文目录一览:

MySQL中的字符串比较

你这两个都不是字符串的比较函数呀。

MYSQL的字符串比较函数如下:

通常,如果在字符串比较中的任何表达式是区分大小写的,比较以大小写敏感的方式执行。

expr LIKE pat [ESCAPE ‘escape-char’]

使用SQL的简单的正规表达式比较的模式匹配。返回1(TRUE)或0(FALSE)。用LIKE,你可以在模式中使用下列2个通配符字符: % 匹配任何数目的字符,甚至零个字符

_ 精确匹配一个字符

mysql select ‘David!’ LIKE ‘David_’;

– 1

mysql select ‘David!’ LIKE ‘%D%v%’;

– 1

为了测试一个通配符的文字实例,用转义字符的加在字符前面。如果你不指定ESCAPE字符,假定为“\”:

\% 匹配一%字符

\_ 匹配一_字符

mysql select ‘David!’ LIKE ‘David\_’;

– 0

mysql select ‘David_’ LIKE ‘David\_’;

– 1

为了指定一个不同的转义字符,使用ESCAPE子句:

mysql select ‘David_’ LIKE ‘David|_’ ESCAPE ‘|’;

– 1

LIKE允许用在数字的表达式上!(这是MySQL对ANSI SQL LIKE的一个扩充。)

mysql select 10 LIKE ‘1%’;

– 1

注意:因为MySQL在字符串中使用C转义语法(例如,“\n”),你必须在你的LIKE字符串中重复任何“\”。例如,为了查找“\n”,指定它为“ \\n”,为了查找“\”,指定它为“\\\\”(反斜线被分析器剥去一次,另一次是在模式匹配完成时,留下一条单独的反斜线被匹配)。

expr NOT LIKE pat [ESCAPE ‘escape-char’]

与NOT (expr LIKE pat [ESCAPE ‘escape-char’])相同。

expr REGEXP pat

expr RLIKE pat

执行一个字符串表达式expr对一个模式pat的模式匹配。模式可以是一个扩充的正则表达式。见MySQL 正则表达式句法的 H 描述.如果expr匹配pat,返回1,否则返回0。RLIKE是REGEXP的一个同义词,提供了与mSQL的兼容性。注意:因为MySQL在字符串中使用C转义语法(例如,“\n”), 你必须在你的REGEXP字符串重复任何“\”。在MySQL3.23.4中,REGEXP对于正常的(不是二进制)字符串是忽略大小写。

mysql select ‘Monty!’ REGEXP ‘m%y%%’;

– 0

mysql select ‘Monty!’ REGEXP ‘.*’;

– 1

mysql select ‘new*\n*line’ REGEXP ‘new\\*.\\*line’;

– 1

mysql select “a” REGEXP “A”, “a” REGEXP BINARY “A”;

– 1 0

当决定一个字符的类型时,REGEXP和RLIKE使用当前的字符集(缺省为ISO-8859-1 Latin1)。

expr NOT REGEXP pat

expr NOT RLIKE pat

与NOT (expr REGEXP pat)相同。

STRCMP(expr1,expr2)

如果字符串相同,STRCMP()回来0,如果第一参数根据当前的排序次序小于第二个,返回-1,否则返回1。

mysql select STRCMP(‘text’, ‘text2’);

– -1

mysql select STRCMP(‘text2’, ‘text’);

– 1

mysql select STRCMP(‘text’, ‘text’);

– 0

在SQL中怎样实现字符串大小的比较

sql里面字符串没有大小之分,只有长度之分,可以比较长度大小,但是想用一条sql语句直接拿到大小结果来说也不太方便,最好是借助程序或者sql脚本来做,我用oracle试了下,用case when函数是可以直接比较大小的,比如第一个值比第二个大输出0,否则输出1:

select (case when len1len2 then 0 when len1len2 then 1 end) as res from (

select length(‘asd’) as len1,length(‘as’) as len2 from dual) t

JSP-Servlet中如何与数据库中的字符串比较?跪求!代码如下

// —————判断登陆用户名密码是否正确————//

public boolean loginSuccess(User user) {

boolean flag = false;

String countSql = ” select count(*) from users where USER_NAME ='”

+ user.getUserName() + “‘ AND USER_PASSWORD='”

+ user.getUserPassword() + “‘”;

int row = 0;

try {

st = con.createStatement();

rs = st.executeQuery(countSql);

while (rs.next()) {

row = rs.getInt(1);

}

} catch (SQLException e) {

e.printStackTrace();

}

if (row 0) {

flag = true;

}

return flag;

}

看看。

劝你不要把JAVA代码写在JSP页面上。。把表现层与业务层分开最好。

SQL数据库中字符串与char数据类型的比较

别听别人瞎说,这就是varchar和char的区别当定义了char的长度后如果长度不够则会自动用空字符补全,而varchar则没事如果是18位的你查询的时候用你的18位加一个空格就能查出来了,不过一般用char类型的,长度都是固定的,毕竟补全空格比较麻烦,所以数据类型要谨慎使用

mysql两个数字型字符串比较!详细如下

我的答案是纯手打的,请认真看,不要浪费我的表情哦~

如果以字符串存储,格式就是 年月日(20120101等于2012-01-01)的话

首先把 日期字符串 转换成 合格的日期

concat_ws(连接符号,字符串1,字符串2…)

第一步代码:

SELECT

CONCAT_WS(‘-‘,

SUBSTRING(‘20120101’,1,4),

SUBSTRING(‘20120101’,5,2),

SUBSTRING(‘20120101’,7,2) ) AS 开始日期 ,

CONCAT_WS(‘-‘,

SUBSTRING(‘20120608’,1,4),

SUBSTRING(‘20120608’,5,2),

SUBSTRING(‘20120608’,7,2) ) AS 结束日期 ;

————————————————————

第二步,将日期使用日期运算函数进行相减:

TIMESTAMPDIFF(返回结果,日期1,日期2)

最终代码:

SELECT

CONCAT_WS(‘-‘,

SUBSTRING(‘20120101’,1,4),

SUBSTRING(‘20120101’,5,2),

SUBSTRING(‘20120101’,7,2) ) AS 开始日期 ,

CONCAT_WS(‘-‘,

SUBSTRING(‘20120608’,1,4),

SUBSTRING(‘20120608’,5,2),

SUBSTRING(‘20120608’,7,2) ) AS 结束日期 ,

TIMESTAMPDIFF(

DAY,

CONCAT_WS(‘-‘,

SUBSTRING(‘20120101’,1,4),

SUBSTRING(‘20120101’,5,2),

SUBSTRING(‘20120101’,7,2) ) ,

CONCAT_WS(‘-‘,

SUBSTRING(‘20120608’,1,4),

SUBSTRING(‘20120608’,5,2),

SUBSTRING(‘20120608’,7,2) )

) AS 相差天数

;

————————————————————————————-

不好意思,看错题目,我以为你是要运算。如果是比较,就先把日期转换为时间戳进行比较是这样:

unix_timestamp(日期)

SELECT

unix_timestamp(

CONCAT_WS(‘-‘,

SUBSTRING(‘20120101’,1,4),

SUBSTRING(‘20120101’,5,2),

SUBSTRING(‘20120101’,7,2) )

) AS 开始日期,

unix_timestamp(

CONCAT_WS(‘-‘,

SUBSTRING(‘20120608’,1,4),

SUBSTRING(‘20120608’,5,2),

SUBSTRING(‘20120608’,7,2) )

) AS 开始结束;

————————————————————————–

直接判断即可

新建一个数据库来验证:

CREATE DATABASE test5_4_17

DEFAULT CHARACTER SET utf8

DEFAULT COLLATE UTF8_BIN;

#新建一个test_4_17 使用utf8字符串

USE test5_4_17;

#打开数据库

CREATE TABLE test(

id INT PRIMARY KEY NOT NULL AUTO_INCREMENT,

date_v VARCHAR(30) NOT NULL

);

INSERT INTO test VALUES(NULL,’20110303′);

INSERT INTO test VALUES(NULL,’20120303′);

INSERT INTO test VALUES(NULL,’20120304′);

INSERT INTO test VALUES(NULL,’20130303′);

SELECT * FROM test; #查看数据有了

SELECT * FROM

test

WHERE

UNIX_TIMESTAMP(date_v) =

unix_timestamp(

CONCAT_WS(‘-‘,

SUBSTRING(‘20120101’,1,4),

SUBSTRING(‘20120101’,5,2),

SUBSTRING(‘20120101’,7,2) )

)

AND

UNIX_TIMESTAMP(date_v) =

unix_timestamp(

CONCAT_WS(‘-‘,

SUBSTRING(‘20120608’,1,4),

SUBSTRING(‘20120608’,5,2),

SUBSTRING(‘20120608’,7,2) )

)

结果是

20120303

20120304

—————————————————————————————–

参数中的 日期字符串 可以换成 字段名

如何在SQL数据库中截取字符串并且比较。

CREATE TABLE #商品信息(

CODE VARCHAR(8),

NAME VARCHAR(8)

);

CREATE TABLE #商品浏览记录(

CODE VARCHAR(8),

NAME VARCHAR(8)

);

INSERT INTO #商品信息

SELECT ‘00010001’, ‘可乐’ UNION ALL

SELECT ‘00010002’, ‘汽水’ UNION ALL

SELECT ‘00010003’, ‘啤酒’ UNION ALL

SELECT ‘00020001’, ‘牙刷’ UNION ALL

SELECT ‘00020002’, ‘毛巾’ UNION ALL

SELECT ‘00030001’, ‘内存’ UNION ALL

SELECT ‘00030002’, ‘CPU’

GO

INSERT INTO #商品浏览记录

SELECT ‘00010003’, ‘啤酒’ UNION ALL

SELECT ‘00030002’, ‘CPU’

GO

SELECT

g.*

FROM

#商品信息 g

JOIN

(SELECT DISTINCT SUBSTRING(CODE, 1, 4) FROM #商品浏览记录) v

ON (g.CODE LIKE v.CODE + ‘%’)

CODE NAME

——– ——–

00010001 可乐

00010002 汽水

00010003 啤酒

00030001 内存

00030002 CPU

(5 行受影响)

原创文章,作者:小蓝,如若转载,请注明出处:https://www.506064.com/n/198401.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
小蓝小蓝
上一篇 2024-12-04 10:25
下一篇 2024-12-04 10:25

相关推荐

  • 英语年龄用连字符号(Hyphenation for English Age)

    英语年龄通常使用连字符号表示,比如 “five-year-old boy”。本文将从多个方面探讨英语年龄的连字符使用问题。 一、英语年龄的表达方式 英语中表…

    编程 2025-04-29
  • Python字符转列表指南

    Python是一个极为流行的脚本语言,在数据处理、数据分析、人工智能等领域广泛应用。在很多场景下需要将字符串转换为列表,以便于操作和处理,本篇文章将从多个方面对Python字符转列…

    编程 2025-04-29
  • Python 常用数据库有哪些?

    在Python编程中,数据库是不可或缺的一部分。随着互联网应用的不断扩大,处理海量数据已成为一种趋势。Python有许多成熟的数据库管理系统,接下来我们将从多个方面介绍Python…

    编程 2025-04-29
  • Python简单数学计算

    本文将从多个方面介绍Python的简单数学计算,包括基础运算符、函数、库以及实际应用场景。 一、基础运算符 Python提供了基础的算术运算符,包括加(+)、减(-)、乘(*)、除…

    编程 2025-04-29
  • openeuler安装数据库方案

    本文将介绍在openeuler操作系统中安装数据库的方案,并提供代码示例。 一、安装MariaDB 下面介绍如何在openeuler中安装MariaDB。 1、更新软件源 sudo…

    编程 2025-04-29
  • Python满天星代码:让编程变得更加简单

    本文将从多个方面详细阐述Python满天星代码,为大家介绍它的优点以及如何在编程中使用。无论是刚刚接触编程还是资深程序员,都能从中获得一定的收获。 一、简介 Python满天星代码…

    编程 2025-04-29
  • Python学习笔记:去除字符串最后一个字符的方法

    本文将从多个方面详细阐述如何通过Python去除字符串最后一个字符,包括使用切片、pop()、删除、替换等方法来实现。 一、字符串切片 在Python中,可以通过字符串切片的方式来…

    编程 2025-04-29
  • Python海龟代码简单画图

    本文将介绍如何使用Python的海龟库进行简单画图,并提供相关示例代码。 一、基础用法 使用Python的海龟库,我们可以控制一个小海龟在窗口中移动,并利用它的“画笔”在窗口中绘制…

    编程 2025-04-29
  • Python计算中文字符个数

    本文将从多个方面对Python计算中文字符个数进行详细的阐述,包括字符串长度计算、正则表达式统计和模块使用方法等内容。 一、字符串长度计算 在Python中,计算字符串长度是非常容…

    编程 2025-04-29
  • 数据库第三范式会有删除插入异常

    如果没有正确设计数据库,第三范式可能导致删除和插入异常。以下是详细解释: 一、什么是第三范式和范式理论? 范式理论是关系数据库中的一个规范化过程。第三范式是范式理论中的一种常见形式…

    编程 2025-04-29

发表回复

登录后才能评论