mysql - 用于查找相似行 id 的行查询

标签 mysql sql

如果我有这样的表:

id      date_from    date_to    n_n     n_d     i_s ...
591     2014-04-26   2014-05-03 1       NULL    1   ...
595     2014-04-26   2014-05-03 1       NULL    1   ...

我有一个这样的查询:

SELECT id
FROM t
WHERE ROW(date_from, date_to, n_n, n_d, i_s) = 
(SELECT date_from, date_to, n_n, n_d, i_s FROM t WHERE id = 591);

我希望结果是一个包含两个 id 591 和 595 的 id 列。但我得到一个空结果。这有什么问题吗?

我需要做的是:找出某些列上相等的所有行的 id。

最佳答案

这是因为 NULL 比较。通常,NULL 不能用通常的相等比较运算符来处理。有诸如IS NULL之类的东西。但在你的情况下,使用 <=>让您的查询获得正确的结果:

SELECT id
FROM t
WHERE ROW(date_from, date_to, n_n, n_d, i_s) <=> 
(SELECT date_from, date_to, n_n, n_d, i_s FROM t WHERE id = 591);

关于mysql - 用于查找相似行 id 的行查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19858675/

相关文章:

mysql - 无法正确加入表格。查询花费的无限时间

sql - 将值从文本框传递到 SQL 查询中的 "TOP n"子句

mysql - SQL/MySQL/PostGres - 当价格更新时返回所有列和记录

php - 当从数据库中获取的数据存储在文本字段中时,如何自动移动下一页

java - 使用 Java 在 pentaho Kettle-spoon 中进行转换和工作的示例程序(Eclipse)

mysql - 检查 mysql 不工作(没有错误)

php - 在php中添加搜索过滤器

MySQL 在 WHERE 子句中使用 LIKE 更新查询不影响匹配行

php - 获取 MySQL 数据以 Bootstrap 模型

mysql - 3 个表的 SQL 计数