mysql - 只有当它具有NULL值时才将数据插入到列中,否则更新它
问题描述
仅当从 HTML 页面发送的数据不是 NULL 或“”时,我才想将数据更新到表中的列中。否则,不得触摸该列。例子 :-
表格1
id name age rent
==========================================
1 Name 1 25 1000
2 Name 2 28 NULL
3 Name 3 35 1500
4 Name 4 44 3200
5 name 5 42 NULL
让从 HTML 页面发送的数据存储在一个变量中,并将today_rent
这个变量发送到 MYSQL。
MySQL 查询
IF(today_rent !=null OR today_rent != '') THEN
UPDATE table_1 SET rent=today_rent WHERE id=2
END IF;
还有其他方法吗?
解决方案
添加索引
CREATE UNIQUE INDEX idx ON test (id, (CASE WHEN rent IS NULL THEN 0 ELSE id END));
然后使用
INSERT INTO test (id, rent)
VALUES (@id,@new_rent)
ON DUPLICATE KEY UPDATE rent = VALUES(rent);
https://dbfiddle.uk/?rdbms=mysql_8.0&fiddle=c48a44a6268e2e1710162b337efa592b
PS。查询没有设置name
和age
列 - 但问题中没有描述它们的设置必要性。
推荐阅读
- pandas - 将 pd.NaT 转换为 timedelta
- java - 发送列表
通过 KSoap - python - 计算整个 Dask 数据帧的方差
- mongodb - SpringBoot mongodb org.springframework.data.mapping.PropertyReferenceException:找不到类型 XYZ 的属性“方法”
- image - 有没有办法使用创建白色图像的图像箱创建通用函数?
- c++ - 无法正确编译 C++/SFML。怎么修?
- python - 如何使用熊猫将此文本文件转换为数据框?
- c# - 大图像上的 WriteableBitmap 问题
- komodoedit - Komodo 编辑语法检查不适用于 PHP 文件
- arrays - VBA将数组传递给函数并返回