【发布时间】:2012-08-23 23:56:50
【问题描述】:
我试图通过使用这样的语句来更新表中的大约 20,000 条记录,
但是,我收到消息说0 row(s) affected,所以它不起作用。
UPDATE nc_files SET title ="Worklog details" WHERE "log_name" LIKE "%PC01%"
log_name 字段包含具有混合文件扩展名和大小写的所有文件名,例如
PC01.TXT | Worklog details
PC02.txt | Project Summary
PC03.DOC| Worklog details
PC04.doc| Project Summary
我需要使用LIKE的原因是更新后的文件只有文件名没有扩展名,例如
PC01 | Worklog details
PC02 | Project Summary
如何使用LIKE更新记录?
【问题讨论】:
-
您是否尝试选择行? SELECT * FROM nc_files WHERE log_name LIKE "%PC01%"
-
首先,尝试使用相同的 WHERE 子句执行 select 语句,这将证明您的 where 子句是否匹配目标表上的任何行。你确定大小写匹配吗?例如数据是小写的,你的 where 子句使用大写吗?
-
您的问题已得到解答。作为附加建议,如果您更新的文件包含没有扩展名的文件名,我建议您将 LIKE 子句更改如下:
WHERE log_name LIKE "PC01%"。这将确保使用索引(如果存在),从而加快查询速度。