mysql - Where 子句不返回任何内容 MySQL

标签 mysql sql

我有一个包含所有名称的数据表。当我这样做时,该表只有一个 cloumn "name"(varchar)

从名称中选择 *

它将返回所有行

当我做的时候

select * from name where name="(a name which is in the database)"

什么都不会返回(我已经尝试了很多表中的名称)。当我做的时候

select * from name where length(name)>0;

它将再次返回所有行。

有什么问题吗?

我试过 SELECT name, length(name), MD5(name) FROM name,长度返回一个比字符串长度大的数字。我尝试在前面放一个空格,然后尝试在后面放一个空格,这两种方法都无济于事。

最佳答案

我打赌你的字符串中有不可见的字符,如空格、换行符或回车符。

试试这个:

select * from name where replace(replace(trim(name), '\r', ''), '\n', '') = 'your_name';

如果这产生了结果,您应该更新您的表格以删除这些字符。

关于mysql - Where 子句不返回任何内容 MySQL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25765088/

相关文章:

sql - 插入存储过程后返回,成功则返回1,否则返回0

sql - Postgres 获取具有不同值的下一行

sql - 性能不佳的 Mysql 子查询——我可以将其转换为 Join 吗?

PHP 在 jQuery 加载中丢失连接字符串

MySQL Workbench - 无法看到文本输出结果

php - 运行 MySQL 查询时出错,寻找正确的语法

mysql - 事件流的新闻提要帮助

php - 在 whm 中隐藏 mysql 错误

java - Hibernate - 选择表格中的所有行

mysql - 如何减少mysql过程中处理数据的时间