SELECT仅空字符串返回带空格的结果

boh*_*boh 12 mysql sql

这个SQL查询:

select c1 from table where c1='';
Run Code Online (Sandbox Code Playgroud)

返回c1=' 'MySQL 中有(一个空格)的行.

这是故意还是错误?

编辑:请在这里查看SQL Fiddle链接,SELECT查询中的空格数无关紧要.

100*_*111 8

文档中已全部说明。我在这里引用了要点。但我建议阅读完整的文档

\n\n
\n

VARCHAR 值在存储时不会被填充。存储和检索值时,将保留尾随空格,以符合标准 SQL。

\n\n

另一方面,CHAR 值在存储时会被填充,但在检索时会忽略尾随空格。

\n
\n\n

在此输入图像描述

\n\n
\n

所有 MySQL 排序规则都是 PADSPACE 类型。这意味着比较 MySQL 中的所有 CHAR、\n VARCHAR 和 TEXT 值,而不考虑任何尾随空格。此上下文中的 \xe2\x80\x9cComparison\xe2\x80\x9d 不包括\n LIKE 模式匹配运算符,该运算符的尾随空格\n 很重要。

\n
\n\n

说明: Trailing spaces使用比较运算符(\'=\')比较字符串时被忽略。但尾随空格对于LIKE(pattern matching operator )

\n