没有“%”的MySQL“ LIKE”与“ =”条件不一样

时间:2018-07-20 09:39:58

标签: mysql sql-like

我有以下MySQL查询。

select * from node where title LIKE 'born in care shelter breed';

哪个返回空集。但是当我尝试下面的查询

select * from node where title = 'born in care shelter breed';

它返回1个结果。

两者将产生什么变化?我无法避免使用LIKE运算符,因为在进行一些条件检查后会创建查询

2 个答案:

答案 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语句会找到该行。

SQL Fiddle

文档在string comparison page上对此进行了说明,指出:

  

尤其是,尾随空格很重要,这不适用于   用=运算符进行的CHAR或VARCHAR比较