Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/72.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Mysql 如何检查SQL记录是否相同(包括空格)?_Mysql_Sql - Fatal编程技术网

Mysql 如何检查SQL记录是否相同(包括空格)?

Mysql 如何检查SQL记录是否相同(包括空格)?,mysql,sql,Mysql,Sql,我意识到SQL数据库中的一些记录中有额外的空格,但我不确定哪些记录中有额外的空格。我试图找出哪些记录是相同的,但是我使用的语句没有区分记录是否在末尾有额外的空间 目前,我正在使用以下SQL语句检查记录是否等效: SELECT * FROM TABLE WHERE NAME='TEST '; 这将返回名为“TEST”的记录。如何找到名称为“TEST”的记录?由于数据库处理空格的方式,这可能很棘手。如果您不想处理不同的情况(像这样的行为是否相同?是否可以regexp处理此问题),则可以执行以下操作

我意识到SQL数据库中的一些记录中有额外的空格,但我不确定哪些记录中有额外的空格。我试图找出哪些记录是相同的,但是我使用的语句没有区分记录是否在末尾有额外的空间

目前,我正在使用以下SQL语句检查记录是否等效:

SELECT * FROM TABLE WHERE NAME='TEST ';

这将返回名为“TEST”的记录。如何找到名称为“TEST”的记录?

由于数据库处理空格的方式,这可能很棘手。如果您不想处理不同的情况(像这样的行为是否相同?是否可以
regexp
处理此问题),则可以执行以下操作:

WHERE CONCAT(NAME, 'x') = 'TEST x';

请注意,这可能会影响性能,如果查询能够在
NAME

上使用索引,如果您有一个包含多行类似数据的表,但周围有随机空格和其他垃圾数据,并且您想查看每个特定的奇数数据中有多少,您可以使用计数进行分组

SELECT Name
       ,Last Name
       ,Count(*)
FROM table
GROUP BY NAME
         ,LAST NAME
这将显示所有结果,并在其旁边显示每个结果的数量

IE:
JOHN SMITH 2
杰克·史密斯1号

你可以试试这个

     SELECT * FROM TABLE WHERE TRIM(NAME)='TEST';
如何查找名称为“TEST”的记录

一种方法是:

select * from mytable   
WHERE NAME='TEST ' and length(NAME) = length('TEST ');

名称的数据类型是什么?烧焦(哪个将填充空格?)数据类型是varchart谢谢!不是那样想的,很聪明。谢谢,太完美了。