我对检查数据库中的值有点困惑。我想要做的是看看是否存在如下的元组:
job_num |item_code |invoice_num
------------------------------------
94834 |EFC-ASSOC-01|
invoice_num不为空,它为空:“”。
我想要的是查找是否存在这样的条目,其中invoice_num为“”并使用输入到文本框中的数字进行更新。我对SQL中的语句和案例有点困惑,所以如果有人能指出我正确的方向,那就太棒了!
答案 0 :(得分:1)
如果您只遇到SQL问题,并且根据列的数据类型,this应该可以帮助您。如果你需要where子句中的整个元组,它将是:
SELECT * FROM MyTableName Where job_num = 94834 AND item_code = 'EFC-ASSOC-01' AND datalength(invoice_num) = 0
答案 1 :(得分:1)
查找此类行(或元组)的一种方法是查询,如:
SELECT job_num, item_code, invoice_num
FROM tablename
WHERE job_num = 94834 AND item_code = "EFC-ASSOC-01" AND invoice_num = ""
或者如果空字符串有问题,请关注@ Ben的建议。然后你可以做update:
UPDATE tablename SET invoice_num = ? WHERE job_num = .........
但是,这种方法的问题在于,如果您没有使用主键在update语句中选择行,则可以更新多行(类似地,select语句可以返回多行)。因此,您必须查看数据库模式并确定表的主键列,并确保在更新的WHERE子句中使用所有主键列。如果你这样做
UPDATE tablename SET invoice_num = value WHERE invoice_num = ""
将更新具有该invoice_num值的所有行,这可能不是您想要的。
答案 2 :(得分:0)
如果您可以在变量上传递要更新的值(让我们称之为@RealInvoiceNum
),那么UPDATE
语句应为:
UPDATE YourTable
SET invoice_num = @RealInvoiceNum
WHERE job_num = @JobNum AND invoice_num = ''