从mysql表中特定列的第一个空行更新

5vf7fwbs  于 2021-06-17  发布在  Mysql
关注(0)|答案(3)|浏览(281)

假设我有一张这样的table:

所有数据都是随机的,电子邮件或电话可以属于任何名称,地址,。。。
现在我还有几封邮件要补充。除了使用php explode 以及 for 循环更新电子邮件列,我仍然想知道如何查询电子邮件列中的第一个空行开始。
谢谢你的帮助!

kyks70gy

kyks70gy1#

如果“first”转换为“with the lower id”,您可以使用子查询,该子查询将检查空电子邮件中是否有较低的id。

SELECT *
       FROM elbat t1
       WHERE t1.email IS NULL
             AND NOT EXISTS (SELECT *
                                    FROM elbat t2
                                    WHERE t2.id < t1.id
                                          AND t2.email IS NULL);

(更改) IS NULL= '' 如果“empty”是指空字符串,而不是null。)
但是,如果所有这些值都不相关,则应该修复该设计并拥有四个独立的表。一个是姓名,一个是地址,一个是电子邮件,一个是电话号码。如果空值没有意义,就不应该存储它们。这样你就可以做一个 INSERT 不需要找空行。

nimxete2

nimxete22#

我仍然想知道如何查询电子邮件列中的第一个空行
您似乎在寻找电子邮件为空的最低行id:这是一个简单的问题 SELECT 具有空电子邮件的行上的语句,带有 ORDER BY 对结果进行排序 id 和一个 LIMIT 子句只保留第一个结果。

SELECT id
FROM table
WHERE email IS NULL
ORDER BY id
LIMIT 1

你可以在 WHERE 带的子句 AND s和 OR s来优化搜索。要显示所有结果而不仅仅是第一个结果,请删除 LIMIT 条款。

8i9zcol2

8i9zcol23#

如果:
“空”是指具有空值的行,
你说的“第一”是指最低的那一排 id 价值观。
然后,我会做:

select min(id)
from my_table
where name is null
  and address is null
  and email is null
  and phone is null

相关问题