MySQL查询该字段上一行字段是否为某个值
时间: 2024-10-10 14:07:16 浏览: 46
在MySQL中,如果你想检查当前行的某个字段是否等于上一行的同名字段,你可以使用自连接(self-join)结合行号功能。假设你要比较的是表`table_name`的字段`field_column`,可以使用以下查询:
```sql
SELECT t1.*
FROM table_name t1
JOIN (SELECT @row_number:=@row_number+1 as row_num, field_column
FROM table_name, (SELECT @row_number:=0) r
ORDER BY id) t2 ON t1.id = t2.row_num
WHERE t1.field_column <> IF(@row_number=1, NULL, t2.field_column)
AND t1.row_num > 1;
```
这个查询首先创建了一个虚拟表`t2`,它包含了每个记录的行号(`row_num`)以及字段值(`field_column`)。然后在主表`t1`中通过`id`关联这两个表。`WHERE`条件检查了当前行的`field_column`是否不等于上一行(如果这是第一行,则忽略`t2.field_column`),同时排除首行。
阅读全文