有没有办法只更新部分数据库记录?我有一个表格列出了一堆不同的项目,然后是它们的成本,但我想从项目中删除成本。例如:
当前表格如下
---Item-------------
Apple- 1.35
Orange - 1.24
Grape - 2.00
ETC..
---------------------
我想用相同的记录更新表格,但最后没有透明的价格。此表中有数百个不同的记录,因此我无法通过特定记录进行更新。我尝试过使用通配符,但我无法得到我正在寻找的结果。有没有办法做到这一点?
答案 0 :(得分:1)
如果要删除的部分始终以连字符开头,并且不会将任何连字符作为项目名称的一部分,那么此代码应该按照您的要求执行:
update YourTable set item = left(item, instr(item,"-")-1)
在运行更新之前,您可能希望将其作为选择:
select left(item, instr(item,"-")-1) as newitem from YourTable
如果您的项目名称可以包含连字符,则可能会搜索连字符后跟空格:"- "
此外,应该使用where子句来避免在没有价格部分的情况下尝试更新行。
SELECT Left(item,InStr(item,"- ")-1) AS newitem
FROM YourTable
WHERE InStr(item,"- ") > 0;
答案 1 :(得分:0)
获取ParseWord函数,将其粘贴到模块中,并在UPDATE查询中引用它,如下所示:
ParseWord([NameOfYourField], 1)
你也可以使用Split()
function做同样的事情。
答案 2 :(得分:0)
我想我会选择Mid:
SELECT t.ExistingField,
Trim(Mid([existingfield],1,InStr([existingfield],"-")-1)) AS NewData
FROM Table t
所以:
UPDATE Table
SET Table.UpdatedField = Trim(Mid([existingfield],1,InStr([existingfield],"-")-1))
WHERE Table.ExistingField Like "*-*"