我有以下MySQL查询。
select * from node where title LIKE 'born in care shelter breed';
哪个返回空集。但是当我尝试下面的查询
select * from node where title = 'born in care shelter breed';
它返回1个结果。
两者将产生什么变化?我无法避免使用LIKE运算符,因为在进行一些条件检查后会创建查询
答案 0 :(得分:0)
在WHERE子句中使用LIKE运算符在列中搜索指定的模式。
有两个通配符与LIKE运算符一起使用:
conda install -c conda-forge nltk_data
我认为下面将返回行
% - The percent sign represents zero, one, or multiple characters
_ - The underscore represents a single character
进一步了解like
答案 1 :(得分:-1)
我猜您在title
字段中有尾随空格。使用=
符号的MySQL字符串比较不考虑尾随空格。请注意以下几点:
CREATE TABLE node
(title VARCHAR(99));
INSERT INTO node (title)
VALUES ('born in care shelter breed '); -- Note the space at the end
SELECT * FROM node WHERE title LIKE 'born in care shelter breed';
SELECT * FROM node WHERE title = 'born in care shelter breed';
请注意第一个select语句如何返回零结果,但是第二个select语句会找到该行。
文档在string comparison page上对此进行了说明,指出:
尤其是,尾随空格很重要,这不适用于 用=运算符进行的CHAR或VARCHAR比较