此处将为大家介绍关于通过正负查询过滤空字符串时,MsSql的行为不同的详细内容,此外,我们还将为您介绍关于c#–为什么null条件运算符对==和.Equals()的行为不同?、H2DB支持的RESTA
此处将为大家介绍关于通过正负查询过滤空字符串时,MsSql 的行为不同的详细内容,此外,我们还将为您介绍关于c# – 为什么null条件运算符对==和.Equals()的行为不同?、H2 DB 支持的 REST API 与 IBM DB2 的行为不同,用于插入带有 XML 字符串的行、ibatis 自动生成键 selectkey(Oracle、MYSQL、MSSQL、SQLITE)、javascript – 为什么jQuery中的click()方法与DOM click方法()的行为不同?的有用信息。
本文目录一览:- 通过正负查询过滤空字符串时,MsSql 的行为不同
- c# – 为什么null条件运算符对==和.Equals()的行为不同?
- H2 DB 支持的 REST API 与 IBM DB2 的行为不同,用于插入带有 XML 字符串的行
- ibatis 自动生成键 selectkey(Oracle、MYSQL、MSSQL、SQLITE)
- javascript – 为什么jQuery中的click()方法与DOM click方法()的行为不同?
通过正负查询过滤空字符串时,MsSql 的行为不同
如何解决通过正负查询过滤空字符串时,MsSql 的行为不同
当过滤空字符串 != ''''
或 <> ''''
关于 NULL 值时,我刚刚意识到我的 Mssql 数据库的非常奇怪的行为。
我在表中有以下数据
ID | 价值 | (表X) |
---|---|---|
1 | (空字符串) | |
2 | NULL | (无值) |
3 | 文字 | (一些真实的文字) |
此查询 select * from X where Value = ''''
结果:
- ID:[1]
查询 select * from X where Value != ''''
和 select * from X where Value <> ''''
的结果是:
- ID:[3]
我不明白的是,为什么第二个查询没有返回 ID=2?
我知道显式检查空值 where Value IS NULL
的语法,所以我预计第二个查询的行为会有所不同。在检查非空值时,我曾经写过 where Value <> '''' AND Value IS NOT NULL
。从现在开始我完全糊涂了...
解决方法
NULL 没有字符串值 - 或根本没有任何值,而 '' '' 是空字符串。您在第二个查询中寻找非空字符串。 NULL 不是空字符串或根本不是字符串。 NULL 是除 NULL 本身之外没有其他类型的“值”
无法使用比较运算符测试 NULL 值, 例如 =、。 https://www.w3schools.com/sql/sql_null_values.asp
c# – 为什么null条件运算符对==和.Equals()的行为不同?
var firstChild = token.First as JProperty; bool isHref = token.Children().Count() == 1 && firstChild?.Name == "href";
我想使字符串比较不区分大小写,所以我将其更改为:
var firstChild = token.First as JProperty; bool isHref = token.Children().Count() == 1 && firstChild?.Name.Equals("href",StringComparison.OrdinalIgnoreCase);
现在编译器给了我一个错误:
Operator && cannot be applied to operands of type ‘bool’ and ‘bool?’
我可以通过合并到false来修复错误
bool isHref = token.Children().Count() == 1 && (firstChild?.Name.Equals("href",StringComparison.OrdinalIgnoreCase) ?? false);
但我很好奇为什么编译器不喜欢第一个空条件语法.
解决方法
string x = null,y = null; // this is null. b1 is bool? var b1 = x?.Equals(y); // b2 is bool // this is true,since the operator doesn't require non-null operands var b2 = x == y;
基本上.Equals()需要一个非null对象来操作.这与==不同,后者是静态绑定的,不是动态调度的.
H2 DB 支持的 REST API 与 IBM DB2 的行为不同,用于插入带有 XML 字符串的行
如何解决H2 DB 支持的 REST API 与 IBM DB2 的行为不同,用于插入带有 XML 字符串的行
我有点不知所措:我有一个包含一个 CLOB 列的表,该列应该包含一个 XML 字符串。在我的测试套件中,我使用内存数据库 H2。在生产中,我使用 IBM DB2。我的测试在某些时候一直失败,我注意到原因是当我在测试套件的表中添加一行时,XML 字符串包含一个标题 (<?xml ...>
)。在我的生产数据库中没有这样的标题。
我在生产和测试套件中所做的调用是相同的:我进行了 REST 调用以插入一些具有相同 JSON 输入的行(映射到一个 DTO,该 DTO 使用 JAXB 转换为 XML)。
通过一些粗略的在线阅读,我无法弄清楚这是什么原因。 IBM DB2 是否在后台处理 XML 字符串,我一定错过了什么?
ibatis 自动生成键 selectkey(Oracle、MYSQL、MSSQL、SQLITE)
我们在数据库插入一条数据的时候,经常是需要返回插入这条数据的主键。但是数据库供应商之间生成主键的方式都不一样。有些是预先生成 (pre-generate) 主键的,如 Oracle 和 PostgreSQL;有些是事后生成 (post-generate) 主键的,如 MySQL 和 SQL Server。但不管是哪种方式,我们都可以用 ibatis 的节点来获取语句所产生的主键。
oracle 例子:
<insert id="insertProduct-ORACLE" parameterClass="product">
<selectKey resultClass="int" type="pre" keyProperty="id" >
SELECT STOCKIDSEQUENCE.NEXTVAL AS VALUE FROM DUAL
</selectKey>
insert into PRODUCT (PRD_ID,PRD_DESCRIPTION) values (#id#,#description#)
</insert>
sql-server 例子:
<insert id="insertProduct-MS-SQL" parameterClass="product">
insert into PRODUCT (PRD_DESCRIPTION) values (#description#)
<selectKey resultClass="int" type="post" keyProperty="id" >
select @@IDENTITY as value
</selectKey>
</insert>
mysql 例子:
<insert id="insertProduct-MYSQL" parameterClass="product">
insert into PRODUCT (PRD_DESCRIPTION) values (#description#)
<selectKey resultClass="int" type="post" keyProperty="id" >
select LAST_INSERT_ID() as value
</selectKey>
</insert>
SQLite 例子:
<insert id="Create" parameterClass="Subject">
INSERT INTO SUBJECT
(SubjectName,QuestionCount,IsNowPaper)
VALUES(#SubjectName#,#QuestionCount#,#IsNowPaper#)
<selectKey resultClass="int" type="post" property="SubjectId">
SELECT seq
FROM sqlite_sequence
WHERE (name = ''SUBJECT'')
</selectKey>
</insert>
注意:name = ''SUBJECT''中SUBJECT为表名称
javascript – 为什么jQuery中的click()方法与DOM click方法()的行为不同?
起初,我相信我可以通过以下两种方式做到这一点:
document.getElementById('child').click();
或者在jquery
$('#child').click();
但是,我后来发现这两种方法的表现不同.
dom的方法按预期触发click事件,但jquery的方法触发父元素的click事件两次.
这是一个关于小提琴的例子. https://jsfiddle.net/5t5jc7ey/
任何人都可以解释为什么jquery为父元素的click事件触发两次?
解决方法
working demo
看到代码更清晰的想法:
$('#jquery').click(function() { $('#child').click(function(e){e.preventDefault();}).click(); }); $('#dom').click(function() { document.getElementById('child').click(); });
I will try to explain again:
1.The first click event of parent gets triggers due to event bubbling.
- Second click event of parent is due to browser’s default action which you can see by clicking on the div itself. I am preventing
browser default action by usinge.preventDefault();
在输出中,您在我的小提琴中看到的父点击事件是由于事件冒泡.所以它给出了所需的答案
今天关于通过正负查询过滤空字符串时,MsSql 的行为不同的讲解已经结束,谢谢您的阅读,如果想了解更多关于c# – 为什么null条件运算符对==和.Equals()的行为不同?、H2 DB 支持的 REST API 与 IBM DB2 的行为不同,用于插入带有 XML 字符串的行、ibatis 自动生成键 selectkey(Oracle、MYSQL、MSSQL、SQLITE)、javascript – 为什么jQuery中的click()方法与DOM click方法()的行为不同?的相关知识,请在本站搜索。
本文标签: